想象力用im4java将png转换为java中的jpg

时间:2012-04-25 11:29:06

标签: java imagick im4java

我需要从PNG转换为JPG。

然而,iMagick为其添加了黑色背景。

我看到这个用于PHP的question,并尝试为此编写相同的内容:

// 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);

但是,图像仍以黑色背景显示。

我错过了什么?

2 个答案:

答案 0 :(得分:2)

我必须写这样的代码:

 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);

答案 1 :(得分:0)

无需拨打background。加入documentation,默认背景为白色,这对我来说可能是你的一张照片有黑色背景覆盖/阻止默认值(也许是brandingURL处的那个?)。< / p>

引用ImageMagick的上述链接文档:

  

- 背景色

     

设置背景颜色。

     

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

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