在這個(gè)示例中,兩個(gè)效果是相鏈接的。如果只想增加對(duì)比度而不增加亮度,那么實(shí)際上必須降低亮度來(lái)補(bǔ)償在顏色強(qiáng)度方面的增加。
通常,當(dāng)調(diào)整亮度時(shí),對(duì)每種顏色只使用矩陣的最后一列會(huì)更加簡(jiǎn)單。這僅僅是添加到顏色值的量,而無(wú)須乘以已有的顏色值。
因此,為了降低亮度,可以使用矩陣代碼如下。
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所示。