为了在代码中实现这个功能,可以执行如下操作:
ColorMatrix cm = new ColorMatrix();
cm.set(new float[] {
2, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 0 });
paint.setColorFilter(new ColorMatrixColorFilter(cm));
相应地,可以通过该矩阵对任何颜色进行类似的处理。
3.4.2 改变对比度和亮度
可以通过增加或减少颜色值来调整图像的亮度和对比度。
以下代码将对每个颜色通道的强度加倍,其将影响到图像的亮度和对比度,如图3-15所示。
ColorMatrix cm = new ColorMatrix();
float contrast = 2;
cm.set(new float[] {
contrast, 0, 0, 0, 0,
0, contrast, 0, 0, 0,
0, 0, contrast, 0, 0,
0, 0, 0, 1, 0 });
paint.setColorFilter(new ColorMatrixColorFilter(cm));