У меня большое 8-битное изображение PNG. Я использую Java, чтобы разделить изображение на более мелкие изображения размером 32x32. Я использую Java ImageIO
для загрузки PNG в BufferedImage
, а затем называю его getSubimage(x, y, 32, 32)
. Затем я использую ImageIO
, чтобы записать каждую плитку в формате PNG.
Проблема в том, что результирующее изображение имеет тот же IndexColorModel
, что и исходное изображение. Например, одна плитка размером 32x32 имеет всего 8 цветов, но включает цветовую модель со всеми 100 нечетными цветами исходного изображения.
Я бы хотел удалить неиспользуемые цвета из плитки IndexColorModel
для плитки 32x32, прежде чем выписать PNG. Нет смысла включать данные о цветах для цветов, не используемых в изображении, и я бы хотел, чтобы изображения были как можно меньше.
Есть ли встроенный механизм для этого или кто-то может указать мне (легкий) способ изменить / уменьшить ColorModel
?
Спасибо!