颜色矩阵M是5*4的矩阵,android中颜色矩阵M是以一维数组m=[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t]的方式进行存储的。
矩阵的每行分别是:
R[a b c d e]
G[f g h i j]
B[k l m n o]
A[p q r s t]
图像的RGBA值则存储在一个5*1的颜色分量矩阵C中,要想改变一张图片的颜色效果,只需要改变图像的颜色分量矩阵即可。
在对ColorMatrixFilter过滤时候,传入的这个参数ColorMatrix,首先应该postConcat亮度矩阵:
float lum = (亮度百分比 - 50) * 2 * 255 * 0.01f;
1, 0, 0, 0, lum,
0, 1, 0, 0, lum,