2

我尝试了下面的两行代码均无济于事。该代码适用于 jpg 或 gif,但如果是 png 则将图像变为粉红色。

ImageIO.write(input, "jpg", profileFile);

RenderedOp op = JAI.create("filestore", input, pFileName, "jpeg");

还有其他人遇到这个问题吗?我一直无法找到解决方案。

4

3 回答 3

1

你重复了你的问题。并且有关于 Sun 库中报告的错误以及解决方法和链接的答案。

使用 Java (ImageIO.write()) 将 PNG 转换为 JPG 的问题

于 2009-12-02T03:33:30.200 回答
0

我不确定这是否是正确的答案。但是还有另一篇文章建议使用 alpha 通道执行 JPEG 写入有点麻烦。

于 2009-12-02T03:30:06.560 回答
0

我使用以下代码绘制 PNG 并没有遇到问题。它将多个PNG图像组合成一个图像。图像具有透明度,并使用双线性变换进行混合。

BufferedImage image = new BufferedImage(BOARD_SIZE, BOARD_SIZE, BufferedImage.TYPE_INT_ARGB); 
Graphics2D g2d = image.createGraphics();
AffineTransformOp transformOp = new AffineTransformOp(new AffineTransform(), AffineTransformOp.TYPE_BILINEAR);
g2d.drawImage(someOtherImage, transformOp, 0, 0);

完成图像后,我使用以下代码将其写入响应:

OutputStream responseStream = response.getOutputStream();
ImageIO.write(image, "PNG", responseStream);
于 2009-12-02T03:35:01.037 回答