我有一个大的 8 位 PNG 图像。我正在使用 Java 将图像切成更小的 32x32 图像。我使用 JavaImageIO
将 PNG 加载到 a 中BufferedImage
,然后将其称为getSubimage(x, y, 32, 32)
. 然后,我使用ImageIO
将每个图块写为 PNG。
问题是生成的图像IndexColorModel
与原始图像相同。例如,一个 32x32 的图块总共只有 8 种颜色,但它包含一个颜色模型,其中包含来自原始图像的所有 100 多种颜色。
IndexColorModel
在我写出 PNG 之前,我想从 32x32 瓷砖中删除未使用的颜色。包含图像中未使用的颜色的颜色数据是没有意义的,我希望图像尽可能小。
是否有内置机制来执行此操作,或者有人可以指出我的(简单)方法来修改/减少ColorModel
?
谢谢!