改變圖像的對比度、亮度、整體色調等:
ColorMatrix:一個數字數組,可以對圖像的像素進行操作,但是操作的事顏色值--每個像素的Red(紅)、Green(綠)、Blue(藍);
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));
new float[]中的第一行包含單個像素的紅色部分上發生的操作;第二行影響的綠色部分;第三行影響的藍色部分;而最後一行操作像素的Alpha值。
新的紅色值=2*128+0*128+0*128+0*0+0;(表示紅色值翻了兩倍)
新的藍色值=0*128+1*128+0*128+0*0+0;
新的綠色值=0*128+0*128+1*128+0*0+0;
新的Alpha值=0*128+0*128+0*128+1*0+0;
改變對比度和亮度:
float contrast=2;
float brightness=-25;
ColorMatrix cm=new ColorMatrix();
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));
改變飽和度:
ColorMatrix類有內置的方法可用於改變飽和度
cm.setSaturation(0.5f);//改變飽和度,傳入大於1的數字將增加飽和度,傳入0~1數字減少飽和度,0值將產生一幅灰度圖像。