我正在尝试使用javax.imageio.ImageIO.read()方法加载PNG图像。但是,我希望结果类型为“BufferedImage.TYPE_4BYTE_ABGR”,但它最终会成为索引图像(“BufferedImage.TYPE_BYTE_INDEXED”)。当原始图像被编入索引时,有没有办法将图像加载为未编入索引?大约有120张图像,所以手动无需索引就需要很长时间。
答案 0 :(得分:0)
如果您不反对使用JAI,可以为RenderedImage创建渲染链(BufferedImage实现接口)并向链中添加格式化操作:
JAI.create(“format”,...)操作,带有使用JAI.KEY_REPLACE_INDEX_COLOR_MODEL键的呈现提示。
纯ImageIO方法是创建所需类型的新BufferedImage,并将从ImageIO.read加载的那个绘制到新的BufferedImage中:
BufferedImage image = ImageIO.read(inputFile);
BufferedImage convertedImage = new BufferedImage(image.getWidth(),
image.getHeight(), BufferedImage.TYPE_4BYTE_ABRG);
convertedImage.createGraphics().drawRenderedImage(image, null);