【发布时间】:2012-04-25 11:29:05
【问题描述】:
我需要从 PNG 转换为 JPG。
但是,iMagick 为其添加了黑色背景。
我看到了这个question,它是用于 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);
但是,图像仍然是黑色背景。
我错过了什么?
【问题讨论】:
-
只是猜测:在将背景设置为白色之前,转换已经将 PNG 的透明背景替换为黑色。我假设白色背景只是被黑色背景覆盖。也许您不应该转换图像,而是将 PNG 绘制到相同大小的白色 JPEG 上。
-
我不是 ImageMagick 专家(您可能想参考它的文档 - 它可能是
draw命令)但是使用纯 Java 图像 io 您可以创建一个BufferedImage并使用关联Graphics对象以填充背景并在其上绘制PNG。 -
这对我没有帮助。因为分辨率会很低
-
你试过用
javax.imageio.ImageIO代替吗? -
当然试过了,但是画质太差了需要使用外部库