大きな8ビットのPNG画像があります。私はJavaを使用して、画像を32x32の小さな画像にスライスしています。私はJavaを使用ImageIO
してPNGをにロードしてBufferedImage
からそれをと呼びますgetSubimage(x, y, 32, 32)
。次に、ImageIO
各タイルをPNGとして書き出すために使用します。
問題は、結果の画像がIndexColorModel
元の画像と同じになることです。たとえば、1つの32x32タイルには合計8色しかありませんが、元の画像の100色すべてのカラーモデルが含まれています。
IndexColorModel
PNGを書き出す前に、32x32タイルから未使用の色を削除したいと思います。画像に使用されていない色のカラーデータを含めても意味がないので、できるだけ小さくしたいと思います。
これを行うための組み込みのメカニズムはありますか、または誰かが私に変更/削減する(簡単な)方法を教えてもらえColorModel
ますか?
ありがとう!