2012-03-27 84 views
1

我需要用圖像上的白色替換一種顏色。我已經閱讀了ColorModel和RGBImageFilter.substituteColorModel,但我不太明白。JAVA:使用ColorModel替換另一種顏色

顏色我想替換是: R:113 G:75 B:96

當然而且,白色是255,255,255。

如果你能給出一個直接的解決方案會很好,但如果沒有的話,關於如何做的一點解釋也會很棒。我不想只是解決方案,我想了解這些問題。

非常感謝。

+0

看起來像同樣的問題http://stackoverflow.com/q/2369809/422353。 – madth3 2012-03-27 01:37:55

回答

1

在我的公司,我們必須經常在嵌入式顯示器上進行這種切換。我們使用索引位圖來完成您正在談論的內容。基本的想法是切換給定索引的調色板以獲得不同的外觀和感覺。

帶有索引位圖的想法是,您可以在托盤中使用256種顏色。您可以將任意RGB值分配給調色板中的每個插槽。圖像本身只是調色板中的索引列表(每個像素單字節)。這對於CPU和存儲受限的平臺(無法處理解壓縮圖像並且無法騰出全綵位圖空間)非常酷。你可以製作替代調色板(綠色,黃色,紅色等)。您只需切換調色板和圖形看起來完全不同。我們使用這個功能在小部件上製作出非常好的漸變效果,這些漸變部件可以切換顏色,而無需在按鈕的每個狀態中進行轉換

爲了解決索引位圖的具體問題,您只需切換調色板,並確保在一個調色板中索引爲(113,75,96),並在第二個調色板中保存相同索引(255,255,255)。

IndexColorModel是在AWT開始的好地方。

祝你好運!

+0

其實我已經讀過它,但不能把握這些概念並將它們應用到我的代碼中。我在http://www.webbasedprogramming.com/Tricks-of-the-Java-Programming-Gurus/ch12.htm#ImageFilters中找到了一個相當不錯的頁面,但我仍然很困惑。 – 2012-03-27 19:34:42

相關問題