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