2012-03-27 85 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

相关问题