我尝试了下面的两行代码均无济于事。该代码适用于 jpg 或 gif,但如果是 png 则将图像变为粉红色。
ImageIO.write(input, "jpg", profileFile);
RenderedOp op = JAI.create("filestore", input, pFileName, "jpeg");
还有其他人遇到这个问题吗?我一直无法找到解决方案。
我尝试了下面的两行代码均无济于事。该代码适用于 jpg 或 gif,但如果是 png 则将图像变为粉红色。
ImageIO.write(input, "jpg", profileFile);
RenderedOp op = JAI.create("filestore", input, pFileName, "jpeg");
还有其他人遇到这个问题吗?我一直无法找到解决方案。
你重复了你的问题。并且有关于 Sun 库中报告的错误以及解决方法和链接的答案。
我不确定这是否是正确的答案。但是还有另一篇文章建议使用 alpha 通道执行 JPEG 写入有点麻烦。
我使用以下代码绘制 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);