我正在使用 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;
提前致谢