我在下面尝试过两行代码都无济于事。代码可以正常使用jpg或gif,但如果是png则将图像变为粉红色。
ImageIO.write(input, "jpg", profileFile);
RenderedOp op = JAI.create("filestore", input, pFileName, "jpeg");
其他人遇到这个问题?我一直无法找到解决方案。
答案 0 :(得分:1)
你复制了你的问题。有关Sun报告库中的报告错误以及解决方法和链接的答案。
答案 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);