我需要在图像上用白色替换一种颜色。我读过关于ColorModel和RGBImageFilter.substituteColorModel的文章,但我不是很了解。
我要替换的颜色是: R: 113 G: 75 B: 96
当然,白色是255,255,255。
如果你能给出一个直接的解决方案将是很好的,但如果不是,关于如何做的一点解释也将是很好的。我不只想要解决方案,我想了解其中的方法和原因。
非常感谢。
发布于 2012-03-27 01:41:56
在我的公司,我们不得不频繁地在嵌入式显示器上进行这种切换。我们使用索引位图来完成您正在谈论的内容。基本思想是切换给定索引的调色板,以获得不同的外观和感觉。
索引位图的想法是在调色板中有256种颜色可供选择。可以将所需的任何RGB值指定给调色板中的每个窗口。图像本身只是调色板中的索引列表(每个像素一个字节)。这在CPU和存储受限的平台上真的很酷(在这种平台上,你不能处理解压缩图像,也不能为全彩色位图腾出空间)。您可以使用其他调色板(绿色、黄色、红色等)。只需切换调色板,图形看起来就完全不同了。我们使用它在小部件上制作非常精细的渐变,这些小部件可以切换颜色,而不必携带按钮的每个状态。
要解决索引位图的特定问题,您只需切换调色板,并确保在一个调色板中的索引为(113,75,96),而在第二个调色板中的索引为(255,255,255)。
在AWT中,IndexColorModel是一个很好的起点。
祝好运!
https://stackoverflow.com/questions/9882174
复制