Bitmap类用一个32位数值来保存,红,绿,蓝及透明度各占8位,每个颜色分量取值范围0~255,
在android中,色彩变换矩阵形式也是5阶的:

android中色彩变换矩阵用ColorMatrix类表示:
arduino
ColorMatrix colorMatrx = new ColorMatrix(new float[]{
1,0,0,0,0,
0,1,0,0,0,
0,0,1,0,0,
0,0,0,0.5,0
});
色彩的平移运算
增加色彩饱和度
色彩的平移运算实际是色彩的加法运算,其实就是色彩变换矩阵的最后一列加上某个值,这样可以增加特点色彩的饱和度。矩阵对应某一色值行最后一列添加数值:如添加绿色饱和:
markdown
1,0,0,0,0,
0,1,0,0,200,
0,0,1,0,0,
0,0,0,1,0
色彩反转/反向功能
每个色值得补值来作为目标图像的对应颜色值,如
markdown
-1,0,0,0,255,
0,-1,0,0,255,
0,0,-1,0,255,
0,0,0,1,0
色彩的缩放运算
调节亮度
色彩缩放运算其实就是色彩的乘法运算。将色彩矩阵对角线上分别代表R,G,B,A的几个值分别乘以指定的值。
markdown
1.2f,0,0,0,0,
0,1.2f,0,0,0,
0,0,1.2f,0,0,
0,0,0,1.2f,0
通道输出
由于在色彩矩阵中对角线上的数取值范围在0~1,所以当取0时,这个色彩就完全不显示,
markdown
0,0,0,0,0,
0,1,0,0,0,
0,0,0,0,0,
0,0,0,0.5,0
setSaturation() //设置饱和度,整体增强色彩饱和度,0时完全无色彩(黑白图像),大于1显示色彩饱和度
setScale() //色彩缩放
setRotate(int axis,float degrees) //色彩旋转,axis 0,1,2 表示红绿蓝轴,degrees 表示度数