滤镜是对现有的图片颜色的一种处理方法。而矩阵则做为滤镜的一种很有效的控制数据表达方式。我们先看下颜色的RGB的效果图:接着我们看下颜色矩阵的结构:
ColorMatrixFilter为4行5列的二维矩阵,第一行表示红色,第二行表示绿色,第三行表示红色,第四行表示透明值。前四列表示意义和四行的意义一样,第五列表示颜色偏差值。
1.颜色矩阵中的数值是1的位置,均是颜色通道的原值的位置。
1.1先看一个组设置:
再看设置后的颜色对比:我们把蓝色通道设置为0,天蓝色的地方变为了绿色。这是为什么哪?我们知道天蓝色是由绿色和蓝色叠加而来的,我们将蓝色通道的值设置为0,那么此处的蓝色就去除了,剩下的绿色自然就显示出来了。
1.2同时去掉绿色和蓝色:
其效果:大部分地方都变成红色的了,为什么黑色的地方依然是黑色哪?因为黑色的RGB本身就是接近0,去掉后仍然是0,影响不大。
同样得滤镜,这个为什么没有变成红色,是不是很奇怪?我们分析下,这个草绿色是绿色是占了绝大部分,红色和蓝色本身占的比例就比较小,去掉绿色后,红绿蓝三个色值比例就非常接近了,当红绿蓝三色数值均等时,自然显示的就是灰色。
1.3简单的例子简单可以这样理解下,正常颜色RGB颜色 #93c2d4,显示为蓝色,当把蓝色 d4去掉时变为#93c200,字体颜色就变为了绿色。
本文只是讲解一个比骄浅俗易懂的颜色矩阵原理,颜色矩阵滤镜的效果,要想彻底了解,还是得自己亲自试试,会学习的更快一点。