我有一個大的8位PNG圖像。我使用Java將圖像分割成更小的32x32圖像。我使用Java的ImageIO
將PNG加載到BufferedImage
中,然後將其命名爲getSubimage(x, y, 32, 32)
。然後,我使用ImageIO
將每個拼貼寫入PNG。有沒有簡單的方法來減少IndexedColorModel中的顏色數量?
的問題是,得到的圖像具有相同的IndexColorModel
作爲原始圖像。例如,一個32x32拼貼只有8種顏色,但它包含一個彩色模型,其中包含原始圖像的所有100多種顏色。
我想從刪除未使用的顏色的32×32瓦的IndexColorModel
之前,我寫出來的PNG。沒有意義包括圖像中未使用的顏色的顏色數據,我希望圖像儘可能小。
是否有一個內置的機制來做到這一點,也可以有人點我一個(簡單)的方法來修改/減少ColorModel
?
謝謝!
德文,感謝 - 這讓我在正確的方向前進除了使用具有顏色的確切數目創建'IndexColorModel'後,所保存的PNG似乎仍然有256色,在它的顏色表。 Photoshop正在顯示不正確的顏色表,或者調色板具有正確的8種顏色,然後用灰色陰影填充剩餘空間達256個。有任何想法嗎? –
嗯,它適用於我,所以它可能是PS報告不正確。如果您在Windows上,請檢查文件屬性,「摘要」標籤,「高級」。它應該顯示「位深度」爲4. –
我在創建IndexedColorModel時可能會出現位深度錯誤。它可能處於一個無效的狀態,它會在顏色表中產生陌生性。我會檢查出來並在這裏報告。 –