【发布时间】:2010-12-22 14:43:43
【问题描述】:
我有一个大的 8 位 PNG 图像。我正在使用 Java 将图像切成更小的 32x32 图像。我使用 Java 的 ImageIO 将 PNG 加载到 BufferedImage 中,然后将其称为 getSubimage(x, y, 32, 32)。然后我使用ImageIO 将每个图块写为PNG。
问题是生成的图像与原始图像具有相同的IndexColorModel。例如,一个 32x32 的图块总共只有 8 种颜色,但它包含一个颜色模型,其中包含来自原始图像的所有 100 多种颜色。
在我写出 PNG 之前,我想从 32x32 磁贴的 IndexColorModel 中删除未使用的颜色。包含图像中未使用的颜色的颜色数据是没有意义的,我希望图像尽可能小。
是否有内置机制来执行此操作,或者有人可以指出一种(简单的)方法来修改/减少 ColorModel?
谢谢!
【问题讨论】:
标签: java image-processing png javax.imageio