在這個示例中,兩個效果是相鏈接的。如果只想增加對比度而不增加亮度,那么實(shí)際上必須降低亮度來補(bǔ)償在顏色強(qiáng)度方面的增加。
通常,當(dāng)調(diào)整亮度時,對每種顏色只使用矩陣的最后一列會更加簡單。這僅僅是添加到顏色值的量,而無須乘以已有的顏色值。
因此,為了降低亮度,可以使用矩陣代碼如下。
ColorMatrix cm = new ColorMatrix();
float brightness = -25;
cm.set(new float[] {
1, 0, 0, 0, brightness,
0, 1, 0, 0, brightness,
0, 0, 1, 0, brightness,
0, 0, 0, 1, 0 });
paint.setColorFilter(new ColorMatrixColorFilter(cm));
將這兩種轉(zhuǎn)換合在一起將產(chǎn)生如下代碼。
ColorMatrix cm = new ColorMatrix();
float contrast = 2;
float brightness = -25;
cm.set(new float[] {
contrast, 0, 0, 0, brightness,
0, contrast, 0, 0, brightness,
0, 0, contrast, 0, brightness,
0, 0, 0, contrast, 0 });
paint.setColorFilter(new ColorMatrixColorFilter(cm));
此操作的結(jié)果如圖3-16所示。