正文

圖像處理(2)

Android多媒體開發(fā)高級(jí)編程 作者:(美)艾佛瑞


默認(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


上一章目錄下一章

Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)