PNG到JPG Java ImageIO问题

时间:2009-12-02 03:19:06

标签: java png jpeg javax.imageio

我在下面尝试过两行代码都无济于事。代码可以正常使用jpg或gif,但如果是png则将图像变为粉红色。

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

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

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

3 个答案:

答案 0 :(得分:1)

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

Problem converting PNG to JPG using Java (ImageIO.write())

答案 1 :(得分:0)

我不确定这是否是正确的答案。但有another post that表明使用alpha通道实现JPEG写入有点棘手。

答案 2 :(得分: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);