【发布时间】:2012-09-23 15:34:22
【问题描述】:
我正在使用 Apache Sanselan 调整许多 jpeg 图像的大小,它也处理 CMYK 颜色。 我在尝试转换具有 alpha 通道的 jpeg 图像时遇到问题......当这样做时,结果是一个具有不同颜色的图像,我猜 java 以某种方式将这些类型的图像处理为不同的颜色格式。 正如我所说,RGB 调整大小和 CMYK 一样好。 ARGB 图像呈现出不同的颜色。
一个例子:
有什么建议吗?我可以强制以某种方式忽略 alpha 通道并将图像作为 RGB 图像处理吗?还是将其转换为 RGB 图像而不丢失真实颜色?
处理这张图片的代码是:
ImageInputStream stream = ImageIO.createImageInputStream(file);
Iterator<ImageReader> iter = ImageIO.getImageReaders(stream);
while (iter.hasNext()) {
ImageReader reader = iter.next();
reader.setInput(stream);
BufferedImage image = null;
ICC_Profile profile = null;
try {
image = reader.read(0);
} catch (IIOException e) {
... (CMYK conversion if needed)
}
return image;
}
return null;
提前致谢
【问题讨论】:
-
我想提一下,颜色变化与调整大小无关,读入 BufferedImage 并使用 ImageIO.write(bi, formatName, targetFile);输出不需要的结果
标签: java image-resizing argb