我需要从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);
但是,图像仍以黑色背景显示。
我错过了什么?
答案 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如何操作)