我正在尝试使用 javax.imageio.ImageIO.read() 方法加载 PNG 图像。但是,我希望结果类型为“BufferedImage.TYPE_4BYTE_ABGR”,但它最终成为索引图像(“BufferedImage.TYPE_BYTE_INDEXED”)。当原始图像被索引时,有什么方法可以将图像加载为未索引?大约有 120 张图像,因此手动将它们全部取消索引需要很长时间。
问问题
1892 次
1 回答
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);
于 2011-04-22T01:53:23.283 回答