我正在尝试在 Servlet 中读取、重新缩放和保存图像。这是相关代码:
BufferedImage image = ImageIO.read(file);
BufferedImage after = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
AffineTransform at = AffineTransform.getScaleInstance(factor, factor);
AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
after = scaleOp.filter(image, null);
ImageIO.write(after, "JPG", file));
原始文件是纯 RGB-Jpeg,但当我打开并保存该文件时,它会显示为 CMYK-Jpeg。即使我不重新缩放图像,这种情况也会发生,只是打开和关闭图像就会导致问题。
当我打开 PNG 或 GIF 时,一切都很好。有人知道在这里做什么吗?我希望 ImageIO read-Method 保留原始颜色空间。
是否有另一种舒适的方式来阅读 jpeg 的?
感谢您的任何建议!
你创造after
然后用scaleOp.filter
。它是否正确?所以你的after
图像可能不是 RGB,即使您认为它是?如果你想after
如果是 RGB 那么你可能需要“绘制”image
onto after
在进行转换之前。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)