3

我需要从PNG转换为JPG。

但是,iMagick 为其添加了黑色背景。

我看到了这个针对 PHP 的问题,并尝试为 java 编写同样的问题,如下所示:

// create the a jpg image
ConvertCmd cmd = new ConvertCmd();
// create the operation, add images and operators/options
IMOperation op = new IMOperation();
op.addImage(brandingURL);
op.format("JPEG");
op.composite();
op.background("white");
op.addImage(imageLocation);
//op.transparent();
// execute the operation
cmd.run(op);

但是,图像仍然带有黑色背景。

我错过了什么?

4

2 回答 2

2

I had to write the code like this:

 Info imageInfo = new Info(brandingURL, true);
 IMOperation op = new IMOperation();
 op.addImage(brandingURL);
 op.size(imageInfo.getImageWidth(), imageInfo.getImageHeight());
 op.addImage("xc:white", "c://write//test.jpeg");
 op.addImage("c://write//test.jpeg");
 CompositeCmd composite = new CompositeCmd();
 composite.run(op);
于 2012-04-29T13:31:01.647 回答
0

调用 tobackground不应该是必要的。根据文档,默认背景是白色的,这对我来说可能是你的一张图片有一个黑色背景,覆盖/阻止了默认(可能是那个brandingURL?)。

引用 ImageMagick 的上述链接文档:

-背景颜色

设置背景颜色。

使用 -fill 选项下描述的格式指定颜色。默认背景颜色(如果未指定或在图像中未找到)为白色。

如果您使用它正是因为其中一个图像确实指定了(黑色)背景,我建议您将background调用移至添加该图片之前或操作结束(不确定 ImageMagick 是如何操作的)

于 2012-04-29T12:07:38.533 回答