默認的ColorMatrix對象就是所謂的標識,就像默認的Matrix對象一樣,當應用它時不會改變圖像。查看以下這個數(shù)組所包含的內容將幫助我們理解它如何工作。
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
這是一個包含了20個浮點數(shù)的數(shù)組。第一行包含了在單個像素的紅色部分上發(fā)生的操作,第二行影響綠色部分,第三行操作藍色部分,而最后一行操作像素的Alpha值。
在每一行中,第一個數(shù)字是與像素的紅色值相關聯(lián)的乘數(shù),第二個數(shù)字是與綠色值相關聯(lián)的乘數(shù),第三個數(shù)字與藍色相關,第四個數(shù)字與Alpha值相關,而最后一個數(shù)字不會與任何值相乘。將這些值都加起來以改變它們正在操作的像素。
假設現(xiàn)在有一個中等灰度的像素,其紅色值是128,藍色值是128,綠色值是128,Alpha值為0(它是不透明的)。如果通過上面的顏色矩陣來操作這個像素,那么數(shù)學公式將看起來如下所示:
新的紅色值= 1 * 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
所有的值都將保持不變,設置為128。對于用于像素的任何顏色變量,情況都將如此,因為每一行在操作代表它的顏色的位置都有一個1,而在其他位置均為0。
如果只想讓一幅圖像看起來比之前紅兩倍,那么可以將操作所有像素的紅色值的數(shù)字增加為2以替換1。這將使矩陣中的紅色值翻倍。
2 0 0 0 0
0 1 0 0 0