專利名稱:用于在認(rèn)可阿爾法通道的環(huán)境中使用非阿爾法通道圖像數(shù)據(jù)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)圖形領(lǐng)域,尤其涉及用于在認(rèn)可阿爾法通道的環(huán)境中使用不認(rèn)可阿爾法通道的圖像的一種系統(tǒng)和方法。
通常,像素的像素?cái)?shù)據(jù)值被包含在四個(gè)字節(jié)中。前三個(gè)字節(jié)指定像素的紅色值、綠色值和藍(lán)色值。在較陳舊的圖形環(huán)境中,忽略第四個(gè)字節(jié)。曾經(jīng)包括這第四個(gè)字節(jié)只是因?yàn)榕c三字節(jié)增值的存儲(chǔ)器相比,大多數(shù)處理器設(shè)計(jì)可以更有效地處理四字節(jié)增值的存儲(chǔ)器。所以,為了存儲(chǔ)像素顯示信息,曾通過處理效率來補(bǔ)償存儲(chǔ)成本。
當(dāng)應(yīng)用程序把將要被顯示的圖像著色給一個(gè)現(xiàn)存的像素?cái)?shù)據(jù)文件時(shí),著色該圖像的應(yīng)用程序重寫像素?cái)?shù)據(jù)文件中的部分或全部數(shù)據(jù)。然后,單獨(dú)或組合使用所得到的文件,以描述顯示圖像的顯示上的像素的功能運(yùn)行。阿爾法混合如上所述,在較陳舊的圖形環(huán)境中,不使用像素?cái)?shù)據(jù)值的第四個(gè)字節(jié)。但是,在較新的圖形環(huán)境中,使用第四個(gè)字節(jié)來存儲(chǔ)一個(gè)阿爾法值(也被稱作“一個(gè)阿爾法通道”),該阿爾法值被用于被稱作“阿爾法混合”的技術(shù)中。
阿爾法混合是用于當(dāng)顯示內(nèi)容由重疊的圖像層構(gòu)成時(shí)模擬透明度的一種方法。在阿爾法混合中,每個(gè)像素的阿爾法值指定該像素的不透明層次。特別是,阿爾法值0表示像素完全透明,阿爾法值255表示像素完全不透明(非透明)。中間阿爾法值(0與255之間的一個(gè)值)表示不透明度的一個(gè)中間層次。前景中圖像的一個(gè)像素的阿爾法值確定來自在背景圖像中所收集的任何像素的任何信息將會(huì)在什么程度上被顯示。
拿阿爾法混合的運(yùn)用舉例來講,考慮一種計(jì)算機(jī)顯示,其具有的一個(gè)圖標(biāo)被顯示在背景圖案的頂部。為了使用阿爾法混合來創(chuàng)建這種顯示,可使用一個(gè)像素?cái)?shù)據(jù)文件,該文件存儲(chǔ)關(guān)于應(yīng)該如何繪畫該圖標(biāo)的信息。在圖標(biāo)的這個(gè)像素?cái)?shù)據(jù)文件內(nèi),對于一些像素而言,所存儲(chǔ)的阿爾法值大于0。這些像素是不透明的,正是這些不透明的像素構(gòu)成圖標(biāo)的圖像。所存儲(chǔ)的像素?cái)?shù)據(jù)的柵格中的所有其他像素都具有阿爾法值零。這些像素是透明的,不是圖標(biāo)的圖像的一部分。當(dāng)來自對應(yīng)于圖標(biāo)的像素?cái)?shù)據(jù)文件的像素?cái)?shù)據(jù)被顯示在對應(yīng)于背景圖案的背景圖案圖像的頂部時(shí),顯示圖標(biāo),并且,背景圖案圖像在其中圖標(biāo)的像素?cái)?shù)據(jù)文件指出這些像素是透明的任何區(qū)域中顯示出來。此外,如果圖標(biāo)圖像中的任何像素具有一個(gè)小于255(完全不透明)的值,則可以通過圖標(biāo)圖像來觀看來自背景圖像圖案的一些信息。
通常,當(dāng)使用阿爾法混合時(shí),具有一個(gè)非零阿爾法值的前景圖像中的像素與背景圖像中的像素結(jié)合在一起被顯示,或者,在前景圖像完全不透明的情況下,它們代替背景圖像中的像素。雖然清楚,但背景圖像示出圖標(biāo)圖像中的任何像素在哪里具有阿爾法值零。這樣,實(shí)施阿爾法混合的圖形環(huán)境(一種認(rèn)可阿爾法通道的環(huán)境)可以使用各個(gè)阿爾法通道值來顯示重疊圖像的組合。
不認(rèn)可阿爾法通道的應(yīng)用程序創(chuàng)建像素?cái)?shù)據(jù)文件的許多較陳舊的應(yīng)用程序(不認(rèn)可阿爾法通道的應(yīng)用程序)不認(rèn)可阿爾法混合和阿爾法值的運(yùn)用。在通常情況下,不認(rèn)可阿爾法通道的應(yīng)用程序把將要被寫入的像素?cái)?shù)據(jù)文件作為輸入,并且,在該像素?cái)?shù)據(jù)文件中,重寫任何數(shù)量的像素的像素?cái)?shù)據(jù)值。利用這種方法,可將新的圖像寫入像素?cái)?shù)據(jù)文件。以前曾存在于輸入圖像數(shù)據(jù)文件中的任何圖像信息在每個(gè)像素中被加以重寫,這每個(gè)像素已由不認(rèn)可阿爾法通道的應(yīng)用程序?qū)懭搿2徽J(rèn)可阿爾法通道的應(yīng)用程序的輸出部分或完全是被重寫的像素?cái)?shù)據(jù)文件。
重要的是,當(dāng)新的像素信息被寫入像素?cái)?shù)據(jù)文件時(shí),許多不認(rèn)可阿爾法通道的應(yīng)用程序?yàn)楸恢貙懙拿總€(gè)像素而將像素?cái)?shù)據(jù)值的最后一個(gè)字節(jié)設(shè)置為零。這個(gè)字節(jié)被用作認(rèn)可阿爾法通道的應(yīng)用程序中的阿爾法值。
在認(rèn)可阿爾法通道的環(huán)境中使用不認(rèn)可阿爾法通道的應(yīng)用程序當(dāng)不認(rèn)可阿爾法通道的應(yīng)用程序生成用于認(rèn)可阿爾法通道的環(huán)境的一個(gè)像素?cái)?shù)據(jù)文件時(shí),出現(xiàn)了一個(gè)問題不認(rèn)可阿爾法通道的應(yīng)用程序所畫的圖像中的每個(gè)像素的阿爾法值被設(shè)置為零。不認(rèn)可阿爾法通道的應(yīng)用程序不會(huì)改變不是由不認(rèn)可阿爾法通道的應(yīng)用程序所創(chuàng)建的像素?cái)?shù)據(jù),所以,保留這種像素?cái)?shù)據(jù)的原始阿爾法值(可能大于零)。如果像素?cái)?shù)據(jù)文件被用于認(rèn)可阿爾法通道的環(huán)境中,則這些像素可能會(huì)出現(xiàn)。但是,由于不認(rèn)可阿爾法通道的應(yīng)用程序所創(chuàng)建的像素?cái)?shù)據(jù)具有阿爾法值零,因此,不認(rèn)可阿爾法通道的應(yīng)用程序曾經(jīng)為其將像素?cái)?shù)據(jù)值寫入像素?cái)?shù)據(jù)文件的每個(gè)像素都是透明的。當(dāng)像素?cái)?shù)據(jù)文件被用于認(rèn)可阿爾法通道的環(huán)境中時(shí),這些像素將不會(huì)出現(xiàn)。
所以,為了在認(rèn)可阿爾法通道的環(huán)境中使用不認(rèn)可阿爾法通道的應(yīng)用程序的輸出,必須使用某種方法來修改像素?cái)?shù)據(jù)的阿爾法值。如果不管所有像素是否已由不認(rèn)可阿爾法通道的應(yīng)用程序?qū)懭刖蛯⑺鼈兊牟煌该鞫雀臑橐粋€(gè)非零的值,則會(huì)導(dǎo)致圖像中所有的像素具有某種不透明度,即使不曾由不認(rèn)可阿爾法通道的應(yīng)用程序?qū)懭肭也皇穷A(yù)定圖像的一部分的像素也是如此。
認(rèn)識(shí)到這種條件,并且,在原先技術(shù)中,曾建立一種機(jī)制,通過該機(jī)制,當(dāng)對將要被分配給應(yīng)用程序的像素?cái)?shù)據(jù)文件進(jìn)行初始化時(shí),每個(gè)像素的像素?cái)?shù)據(jù)值被設(shè)置為一個(gè)標(biāo)記值或顏色。然后,在應(yīng)用程序已將圖像寫入像素?cái)?shù)據(jù)文件之后,檢查每個(gè)像素的像素?cái)?shù)據(jù)值。如果一個(gè)特殊的像素?cái)?shù)據(jù)值仍然具有該標(biāo)記值或顏色,則將那個(gè)像素的阿爾法值設(shè)置為零。如果該特殊的像素?cái)?shù)據(jù)值不包含標(biāo)記值,則將那個(gè)像素的阿爾法值設(shè)置為一個(gè)所需的不透明度。
值得注意的是,這種機(jī)制有兩個(gè)缺點(diǎn)。首先,該機(jī)制在計(jì)算上花費(fèi)較高必須讀取每個(gè)像素,將其與標(biāo)記值進(jìn)行比較,并可能重寫每個(gè)像素。其次,如果不認(rèn)可阿爾法通道的應(yīng)用程序碰巧將一個(gè)像素寫入與標(biāo)記值相匹配的一個(gè)值,則這種所寫入的像素會(huì)被錯(cuò)誤地變成是透明的。
相應(yīng)地,需要一種方法和機(jī)制,可用于允許不認(rèn)可阿爾法通道的應(yīng)用程序?yàn)檎J(rèn)可阿爾法通道的環(huán)境著色的圖像。尤其是,需要這樣一種方法和機(jī)制,其在計(jì)算上花費(fèi)不高,并且,不會(huì)引起錯(cuò)誤透明的像素。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,像素?cái)?shù)據(jù)文件中的每個(gè)像素被初始化成具有阿爾法值1。在不認(rèn)可阿爾法通道的程序已完成對像素?cái)?shù)據(jù)文件的寫入之后,對圖像執(zhí)行一次通過,將每個(gè)像素的阿爾法值減少1。該次通過產(chǎn)生由不認(rèn)可阿爾法通道的程序?qū)懭氲南袼?,這些像素曾由那個(gè)程序設(shè)置為具有新的阿爾法值255的阿爾法值0(由于執(zhí)行以256為模的字節(jié)減法(因?yàn)橐粋€(gè)字節(jié)中有八個(gè)位,并且,28=256)。不認(rèn)可阿爾法通道的應(yīng)用程序沒有寫入的每個(gè)像素因其阿爾法值0而被變成是透明的,每個(gè)這樣的像素的阿爾法值的結(jié)果被初始化為1,然后被減少1。
根據(jù)本發(fā)明的另一個(gè)實(shí)施例,若所需的不透明度由阿爾法值p代表,則在n個(gè)位中表示該阿爾法值,阿爾法值2n-1是最不透明的,阿爾法值0是最透明的;若不認(rèn)可阿爾法通道的應(yīng)用程序?qū)⑵渌鶎懙拿總€(gè)像素?cái)?shù)據(jù)值的阿爾法值設(shè)置為m,則像素?cái)?shù)據(jù)文件中的每個(gè)像素都被初始化成具有阿爾法值2n-p+m。在不認(rèn)可阿爾法通道的程序已完成對像素?cái)?shù)據(jù)文件的寫入之后,對圖像執(zhí)行一次通過,將每個(gè)像素的阿爾法值減少m-p(以2n為模)。這次通過產(chǎn)生由不認(rèn)可阿爾法通道的程序?qū)懭氲?、具有阿爾法值p的像素,以及不認(rèn)可阿爾法通道的程序沒有寫入的、具有阿爾法值0的像素。
以下將描述本發(fā)明的其他方面。
圖3是方框圖,表現(xiàn)了在不認(rèn)可阿爾法通道的程序已對像素?cái)?shù)據(jù)文件進(jìn)行寫入之后但在阿爾法值根據(jù)發(fā)明方法進(jìn)行轉(zhuǎn)變之前的像素?cái)?shù)據(jù)文件中的一組像素。
圖4是方框圖,表現(xiàn)了阿爾法值根據(jù)發(fā)明方法進(jìn)行轉(zhuǎn)變之后的像素?cái)?shù)據(jù)文件中的一組像素。
圖5是發(fā)明方法的流程圖。
示范計(jì)算環(huán)境
圖1展示了可以在其中執(zhí)行本發(fā)明的一種合適的計(jì)算系統(tǒng)環(huán)境100的一個(gè)例子。計(jì)算系統(tǒng)環(huán)境100只是合適的計(jì)算環(huán)境的一個(gè)例子,并非意在對本發(fā)明的運(yùn)用或功能性的范圍進(jìn)行任何限制。也不應(yīng)該將計(jì)算環(huán)境100解釋為具有涉及示范操作環(huán)境100中所展示的任何一個(gè)部分或部分組合的任何從屬性或要求。
本發(fā)明可用于許多其他通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置??赡苓m用于本發(fā)明的眾所周知的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括(但不局限于)個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持或便攜式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PCs、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境,以及類似物。
本發(fā)明可以在正由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令(例如,程序模塊)的一般上下文中加以描述。通常,程序模塊包括執(zhí)行特殊任務(wù)或?qū)嵤┨厥獬橄髷?shù)據(jù)類型的例行程序、程序、對象、部件、數(shù)據(jù)結(jié)構(gòu)等。本發(fā)明也可以在分布式計(jì)算環(huán)境中加以實(shí)踐,在這些分布式計(jì)算環(huán)境中,由通過通信網(wǎng)絡(luò)或其他數(shù)據(jù)傳輸介質(zhì)而被連接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊和其他數(shù)據(jù)可以被定位在包括內(nèi)存存儲(chǔ)設(shè)備的本地計(jì)算機(jī)存儲(chǔ)介質(zhì)和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
參考圖1,用于執(zhí)行本發(fā)明的一個(gè)示范系統(tǒng)包括采取計(jì)算機(jī)系統(tǒng)100的形式的一個(gè)通用計(jì)算設(shè)備。計(jì)算機(jī)110的部件可以包括(但不局限于)一個(gè)處理部件120、一個(gè)系統(tǒng)存儲(chǔ)器130,以及將包括系統(tǒng)存儲(chǔ)器的各種系統(tǒng)部件耦合到處理部件120的一個(gè)系統(tǒng)總線121。系統(tǒng)總線121可以是幾種類型的總線結(jié)構(gòu)(包括存儲(chǔ)總線或存儲(chǔ)控制器、外圍總線,以及使用各種總線構(gòu)造中的任何一種總線構(gòu)造的本地總線)中的任何一種。舉例來講(不作限制),這類構(gòu)造包括“工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)”(ISA)總線、“微通道結(jié)構(gòu)”(MCA)總線、“增強(qiáng)的ISA”(EISA)總線、“視頻電子標(biāo)準(zhǔn)協(xié)會(huì)”(VESA)本地總線,以及“外圍部件互連”(PCI)總線(也被稱作“中層樓(Mezzanine)總線”)。
計(jì)算機(jī)110通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)110進(jìn)行存取的任何可用的介質(zhì),包括易失和非易失介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)。舉例來講(不作限制),計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括采用用于存儲(chǔ)信息(例如,計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù))的任何方法或技術(shù)來加以執(zhí)行的易失和非易失的可移動(dòng)和不可移動(dòng)的介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括(但不局限于)RAM、ROM、EEPROM、快閃存儲(chǔ)器或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用磁盤(DVD)或其他光盤存儲(chǔ)器、盒式磁盤、磁帶、磁盤存儲(chǔ)器或其他磁性存儲(chǔ)設(shè)備、或可以被用于存儲(chǔ)所需信息并可以由計(jì)算機(jī)110進(jìn)行存取的任何其他介質(zhì)。通信介質(zhì)通常具體體現(xiàn)為計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或被調(diào)制的數(shù)據(jù)信號(例如,載波或其他傳送機(jī)制)中的其他數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。術(shù)語“被調(diào)制的數(shù)據(jù)信號”意味著一種信號,該信號的一個(gè)或多個(gè)特征用這樣一種方式來進(jìn)行設(shè)置或更改,以便為該信號中的信息編碼。舉例來講(不作限制),通信介質(zhì)包括有線介質(zhì)(例如,有線網(wǎng)絡(luò)或直線連接)和無線介質(zhì)(例如,聲音、RF、紅外線和其他無線介質(zhì))。以上任何內(nèi)容的組合也應(yīng)該被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
系統(tǒng)存儲(chǔ)器130包括采取易失和/或非易失存儲(chǔ)器(例如,只讀存儲(chǔ)器(ROM)131和隨機(jī)存取存儲(chǔ)器(RAM)132)的形式的計(jì)算機(jī)存儲(chǔ)介質(zhì)?;据斎?輸出系統(tǒng)133(BIOS)(包含有助于在計(jì)算機(jī)110內(nèi)的各個(gè)元件之間傳遞信息的基本例行程序)通常被存儲(chǔ)在ROM131中。RAM132通常包含可以立即進(jìn)行存取和/或目前正由處理部件120進(jìn)行操作的數(shù)據(jù)和/或程序模塊。舉例來講(不作限制),圖1展示了操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110也可以包括其他可移動(dòng)/不可移動(dòng)的易失/非易失計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅僅通過舉例,圖1展示了從不可移動(dòng)的非易失磁性介質(zhì)進(jìn)行讀取或?qū)ζ溥M(jìn)行寫入的硬盤驅(qū)動(dòng)器140、從可移動(dòng)的非易失磁盤152進(jìn)行讀取或?qū)ζ溥M(jìn)行寫入的磁盤驅(qū)動(dòng)器151,以及從可移動(dòng)的非易失光盤156(例如,CD ROM或其他光學(xué)介質(zhì))進(jìn)行讀取或?qū)ζ溥M(jìn)行寫入的光盤驅(qū)動(dòng)器155??梢员挥糜谑痉恫僮鳝h(huán)境中的其他可移動(dòng)/不可移動(dòng)的易失/非易失計(jì)算機(jī)存儲(chǔ)介質(zhì)包括(但不局限于)卡型盒式磁帶、快閃記憶卡、數(shù)字通用磁盤、數(shù)字視頻磁帶、固態(tài)RAM、固態(tài)ROM和類似物。硬盤驅(qū)動(dòng)器141通常通過一個(gè)不可移動(dòng)的存儲(chǔ)接口(例如,接口140)而被連接到系統(tǒng)總線121,磁盤驅(qū)動(dòng)器151和光盤驅(qū)動(dòng)器155通常由一個(gè)可移動(dòng)的存儲(chǔ)接口(例如,接口150)而被連接到系統(tǒng)總線121。
以上所討論的和圖1中所展示的驅(qū)動(dòng)器及其有關(guān)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110提供了計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲(chǔ)。例如,在圖1中,硬盤驅(qū)動(dòng)器141被展示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147。注意,這些部件可以等同于或不同于操作系統(tǒng)134、應(yīng)用程序135、其他程序模塊136和程序數(shù)據(jù)137。這里,為操作系統(tǒng)144、應(yīng)用程序145、其他程序模塊146和程序數(shù)據(jù)147提供不同的數(shù)字,以至少展示它們是不同的副本。用戶可以通過輸入設(shè)備(例如,鍵盤162)和定點(diǎn)設(shè)備161(通常指鼠標(biāo)、跟蹤球或接觸墊)來將命令和信息輸入計(jì)算機(jī)20。其他輸入設(shè)備(未示出)可以包括話筒、操縱桿、游戲墊、圓盤式衛(wèi)星電視天線、掃描儀或類似物。這些和其他輸入設(shè)備經(jīng)常通過被耦合到系統(tǒng)總線的用戶輸入接口160而被連接到處理部件120,但可以由其他接口和總線結(jié)構(gòu)(例如,并行端口、游戲端口或通用串行總線(USB))進(jìn)行連接。監(jiān)視器191或其他類型的顯示設(shè)備也經(jīng)由一個(gè)接口(例如,視頻接口190)而被連接到系統(tǒng)總線121。除監(jiān)視器以外,計(jì)算機(jī)也可以包括可通過輸出外圍接口190而被連接的其他外圍輸出設(shè)備(例如,揚(yáng)聲器197和打印機(jī)196)。
計(jì)算機(jī)110可以在使用與一臺(tái)或多臺(tái)遠(yuǎn)程計(jì)算機(jī)(例如,遠(yuǎn)程計(jì)算機(jī)180)的邏輯連接的聯(lián)網(wǎng)環(huán)境中進(jìn)行操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、同位體設(shè)備或其他共同的網(wǎng)絡(luò)節(jié)點(diǎn),它通常包括與計(jì)算機(jī)110有關(guān)的以上所描述的許多或所有元件,雖然圖1中只展示了內(nèi)存存儲(chǔ)設(shè)備181。圖1中所描繪的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可以包括其他網(wǎng)絡(luò)。這類聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和互聯(lián)網(wǎng)中很普遍。
當(dāng)被用于LAN聯(lián)網(wǎng)環(huán)境中時(shí),計(jì)算機(jī)110通過網(wǎng)絡(luò)接口或適配器170而被連接到LAN171。當(dāng)被用于WAN聯(lián)網(wǎng)環(huán)境中時(shí),計(jì)算機(jī)110通常包括用于在WAN173(例如,互聯(lián)網(wǎng))上建立通信的一個(gè)調(diào)制解調(diào)器172或其他裝置。調(diào)制解調(diào)器172(可能是內(nèi)置的,也可能是外置的)可以經(jīng)由用戶輸入接口160或其他合適的機(jī)制而被連接到系統(tǒng)總線121。在聯(lián)網(wǎng)環(huán)境中,與計(jì)算機(jī)110有關(guān)的所描繪的程序模塊或其各個(gè)部分可以被存儲(chǔ)在遠(yuǎn)程內(nèi)存存儲(chǔ)設(shè)備中。舉例來講(不作限制),圖1將遠(yuǎn)程應(yīng)用程序185展示為駐留在存儲(chǔ)器設(shè)備181上。將會(huì)理解,所示的網(wǎng)絡(luò)連接是起示范作用,可以使用在各臺(tái)計(jì)算機(jī)之間建立一個(gè)通信鏈接的其他裝置。
變換不認(rèn)可阿爾法通道的應(yīng)用程序的輸出根據(jù)本發(fā)明的一個(gè)實(shí)施例,一種方法允許在認(rèn)可阿爾法通道的環(huán)境中使用來自不認(rèn)可阿爾法通道的應(yīng)用程序的輸出。為此,必須有一種途徑,可以將不認(rèn)可阿爾法通道的應(yīng)用程序已更改的像素?cái)?shù)據(jù)文件中的每個(gè)像素的阿爾法值更改為零——一個(gè)所需的不透明度,并將沒有被不認(rèn)可阿爾法通道的應(yīng)用程序改變的像素?cái)?shù)據(jù)文件中每個(gè)像素的阿爾法值設(shè)置為零。
在圖2、3和4中,每個(gè)像素被表示為具有括弧中的四個(gè)數(shù)字的一個(gè)小正方形,它對應(yīng)于被存儲(chǔ)在該像素的像素?cái)?shù)據(jù)文件199中的四個(gè)字節(jié)的信息(像素?cái)?shù)據(jù)值)。最后一個(gè)字節(jié)是阿爾法值。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,并且如所示的內(nèi)容,像素?cái)?shù)據(jù)文件199被用于存儲(chǔ)將要被產(chǎn)生的圖像。最終的圖像中將不會(huì)顯示來自像素?cái)?shù)據(jù)文件199(除此以外,不認(rèn)可阿爾法通道的應(yīng)用程序?qū)?huì)對其寫入數(shù)據(jù))的數(shù)據(jù),所以,所使用的像素?cái)?shù)據(jù)文件不應(yīng)該是其中正在存儲(chǔ)任何重要數(shù)據(jù)的文件。
從圖2中可見,像素?cái)?shù)據(jù)文件199的每個(gè)像素200的阿爾法值(最后一個(gè)字節(jié))被初始化為一個(gè)值1。每個(gè)像素200的前三個(gè)字節(jié)(紅色值、綠色值、藍(lán)色值)的值出于本發(fā)明的目的而互不相關(guān);例如,對于每個(gè)像素200而言,這些字節(jié)值等于255。如圖5中的流程圖的第一個(gè)步驟510中所示,在不認(rèn)可阿爾法通道的應(yīng)用程序操作像素?cái)?shù)據(jù)文件199之前,實(shí)行初始化。
如圖5的第二個(gè)步驟520中所示,在被初始化之后,圖2中的像素?cái)?shù)據(jù)文件199被不認(rèn)可阿爾法通道的應(yīng)用程序使用,該應(yīng)用程序通過改變一些或所有像素200的像素?cái)?shù)據(jù)值來將圖像寫入像素?cái)?shù)據(jù)文件199。
如圖3所示,在不認(rèn)可阿爾法通道的應(yīng)用程序操作像素?cái)?shù)據(jù)文件199之后,改變的像素305由不認(rèn)可阿爾法通道的應(yīng)用程序?qū)懭?。其他像素——未改變的像?10還沒有被阿爾法通道應(yīng)用程序?qū)懭?,并包含其在運(yùn)行不認(rèn)可阿爾法通道的應(yīng)用程序之前所具有的相同的值。
每個(gè)改變的像素305的阿爾法值已被設(shè)置為0,其他字節(jié)的值也已在許多情況中被加以改變。但是,注意,對于改變的像素305中的一個(gè)像素而言,像素?cái)?shù)據(jù)值是(255,255,255,0)。紅色值、綠色值和藍(lán)色值保留在255處,而那個(gè)像素的阿爾法值還是0,這指出那個(gè)像素已由不認(rèn)可阿爾法通道的應(yīng)用程序?qū)懭耄词篃o法通過檢查像素?cái)?shù)據(jù)的前三個(gè)字節(jié)來看到這一點(diǎn),也是如此。
如圖5的第三個(gè)步驟530中所示,所有像素(改變的像素305和未改變的像素310)中的每個(gè)阿爾法值被減少1。圖4中示出所得到的像素?cái)?shù)據(jù)文件。當(dāng)對字節(jié)執(zhí)行時(shí),執(zhí)行以256為模的這個(gè)減值。所以,對于其阿爾法值曾一直是零的每個(gè)像素405(來自圖3的改變的像素305)而言,當(dāng)像素?cái)?shù)據(jù)文件199被用于認(rèn)可阿爾法通道的應(yīng)用程序中時(shí),新的阿爾法值變成255,并且,該像素變成不透明。其阿爾法值曾一直是1的每個(gè)像素410(來自圖3的未改變的像素310)的阿爾法值變成0,當(dāng)像素?cái)?shù)據(jù)文件199被用于認(rèn)可阿爾法通道的應(yīng)用程序中時(shí),每個(gè)像素410變成透明。這樣,通過只對每個(gè)像素執(zhí)行一項(xiàng)算術(shù)運(yùn)算,無須進(jìn)行比較,曾由不認(rèn)可阿爾法通道的應(yīng)用程序更改的像素305就會(huì)是不透明的,而未改變的像素310會(huì)是透明的。如圖5的第四個(gè)步驟540中所示,然后,可以在認(rèn)可阿爾法通道的環(huán)境中使用具有圖像的像素?cái)?shù)據(jù)文件199。
本發(fā)明的其他實(shí)施例也是可行的。在一些圖形系統(tǒng)中,像素?cái)?shù)據(jù)被包含在兩個(gè)字節(jié)(而不是四個(gè)字節(jié))中。在這些系統(tǒng)中,為紅色值、綠色值和藍(lán)色值中的每個(gè)值使用5個(gè)位,最后一個(gè)位是阿爾法位(透明是0;不透明是1)。在這種情況下,在運(yùn)行不認(rèn)可阿爾法通道的應(yīng)用程序之前,應(yīng)該將包含阿爾法值的位設(shè)置為1;在運(yùn)行該應(yīng)用程序之后,應(yīng)該改變阿爾法位(從1改變成0;從0改變成1)。通過增值、減值或按理想效率來執(zhí)行這項(xiàng)變化的任何其他的邏輯操作者裝置,可以實(shí)現(xiàn)這一點(diǎn)。
通過將阿爾法值設(shè)置為1并執(zhí)行以2n為模的1的減法,像素信息的任何其他的存儲(chǔ)系統(tǒng)(其中,不透明度由阿爾法值2n-1表示(換言之,該阿爾法值長n個(gè)位),透明度由阿爾法值0表示)都可以利用本發(fā)明的方法。
可能存在一種不認(rèn)可阿爾法通道的應(yīng)用程序,該應(yīng)用程序?qū)⒏淖兊南袼氐陌柗ㄖ翟O(shè)置為值m(而不是零)。這里,通過在運(yùn)行該應(yīng)用程序之前將阿爾法通道初始化成值m+1,然后以2n為模(其中,n是阿爾法值中的位的數(shù)目)將阿爾法通道中的各個(gè)值減少m+1,可以利用本發(fā)明的方法。
由不認(rèn)可阿爾法通道的應(yīng)用程序產(chǎn)生的圖像也可能被預(yù)定只是局部不透明。在這種情況下,并且,若阿爾法值長n個(gè)位,完全不透明由阿爾法值2n-1表示,所產(chǎn)生的圖像需要具有不透明度值p,本發(fā)明的方法將每個(gè)阿爾法值初始化為值2n-p,并在運(yùn)行該應(yīng)用程序之后將p(以2n為模)加入每個(gè)阿爾法值。在不認(rèn)可阿爾法通道的應(yīng)用程序?qū)柗ㄍǖ赖闹翟O(shè)置為零的情況下,使用這種方法。
可以結(jié)合這些情況—其中,阿爾法通道長n個(gè)位,不認(rèn)可阿爾法通道的應(yīng)用程序?qū)柗ㄍǖ赖闹翟O(shè)置為m,所需的不透明度是p,每個(gè)像素的阿爾法值應(yīng)該被初始化為2n-p+m,然后,在運(yùn)行不認(rèn)可阿爾法通道的應(yīng)用程序之后,應(yīng)該加入p-m(或減去m-p),以2n為模。
可以在圖形系統(tǒng)、操作系統(tǒng)、其上存儲(chǔ)有多個(gè)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)、協(xié)處理設(shè)備、計(jì)算設(shè)備或攜帶用于執(zhí)行這種方法的計(jì)算機(jī)可執(zhí)行指令的被調(diào)制的數(shù)據(jù)信號中實(shí)施該方法。
結(jié)論實(shí)現(xiàn)本發(fā)明的各個(gè)結(jié)構(gòu)所必需的編程以及結(jié)合本發(fā)明而執(zhí)行的程序相對簡單明了,相關(guān)的編程特定人群對此應(yīng)該很清楚。相應(yīng)地,這種編程并不局限于此。因此,在不脫離本發(fā)明的精神和范圍的前提下,可以使用任何特殊的編程來實(shí)現(xiàn)本發(fā)明。
在前文中可見,本發(fā)明包括一種新的、有用的機(jī)制,該機(jī)制允許不認(rèn)可阿爾法通道的應(yīng)用程序?yàn)檎J(rèn)可阿爾法通道的環(huán)境著色圖像。應(yīng)該理解,在不脫離所描述的實(shí)施例的發(fā)明概念的前提下,可以對這些實(shí)施例進(jìn)行更改。所以,不言而喻,本發(fā)明不局限于所揭示的特殊實(shí)施例,而意在包含在如所附權(quán)利要求書所定義的本發(fā)明的精神和范圍以內(nèi)進(jìn)行修改。
權(quán)利要求
1.用于在認(rèn)可阿爾法通道的環(huán)境中使用由不認(rèn)可阿爾法通道的應(yīng)用程序著色的像素?cái)?shù)據(jù)文件中的圖像的一種方法,其中,(i)不認(rèn)可阿爾法通道的應(yīng)用程序?qū)⑾袼財(cái)?shù)據(jù)值寫入像素?cái)?shù)據(jù)值的一個(gè)現(xiàn)存的像素?cái)?shù)據(jù)文件;(ii)每個(gè)像素?cái)?shù)據(jù)值包括一個(gè)n位阿爾法值,并對應(yīng)于一個(gè)像素位置;(iii)不認(rèn)可阿爾法通道的應(yīng)用程序?yàn)槊總€(gè)像素將像素?cái)?shù)據(jù)值的阿爾法值設(shè)置為0,每個(gè)像素的像素?cái)?shù)據(jù)值由該應(yīng)用程序?qū)懭胂袼財(cái)?shù)據(jù)文件;以及(iv)認(rèn)可阿爾法通道的環(huán)境是一種圖形環(huán)境,在該環(huán)境中,當(dāng)在其他圖像數(shù)據(jù)的前景中顯示像素?cái)?shù)據(jù)文件中的圖像時(shí),使用每個(gè)阿爾法值來設(shè)置對應(yīng)的像素的透明度,阿爾法值零對應(yīng)于完全透明,不斷增加的阿爾法值對應(yīng)于不斷提高的不透明度的層次,包括(a)為像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值初始化為1;(b)對像素?cái)?shù)據(jù)文件執(zhí)行不認(rèn)可阿爾法通道的應(yīng)用程序;(c)通過為具有阿爾法值1的像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為0,并為具有阿爾法值為0的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為完全不透明的阿爾法值,來改變每個(gè)像素?cái)?shù)據(jù)值的阿爾法值;以及,(d)在認(rèn)可阿爾法通道的環(huán)境中顯示像素?cái)?shù)據(jù)文件。
2.如權(quán)利要求1所述的方法,其特征在于,像素?cái)?shù)據(jù)值的阿爾法值的所述變化包括為像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值減少1,以2n為模。
3.如權(quán)利要求2所述的方法,其特征在于,從包括1和8的一組中選擇n。
4.操作系統(tǒng)、其上存儲(chǔ)有多個(gè)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)、協(xié)處理設(shè)備、計(jì)算設(shè)備以及攜帶用于執(zhí)行如權(quán)利要求1所述的方法的計(jì)算機(jī)可執(zhí)行指令的被調(diào)制的數(shù)據(jù)信號中的至少一種。
5.用于在認(rèn)可阿爾法通道的環(huán)境中使用由不認(rèn)可阿爾法通道的應(yīng)用程序著色的像素?cái)?shù)據(jù)文件中的圖像的一種方法,其中,(i)不認(rèn)可阿爾法通道的應(yīng)用程序?qū)⑾袼財(cái)?shù)據(jù)值寫入像素?cái)?shù)據(jù)值的一個(gè)現(xiàn)存的像素?cái)?shù)據(jù)文件;(ii)每個(gè)像素?cái)?shù)據(jù)值包括一個(gè)n位阿爾法值,并對應(yīng)于一個(gè)像素位置;(iii)不認(rèn)可阿爾法通道的應(yīng)用程序?yàn)槊總€(gè)像素將像素?cái)?shù)據(jù)值的阿爾法值設(shè)置為m,每個(gè)像素的像素?cái)?shù)據(jù)值由該應(yīng)用程序?qū)懭胂袼財(cái)?shù)據(jù)文件;以及(iv)認(rèn)可阿爾法通道的環(huán)境是一種圖形環(huán)境,在該環(huán)境中,當(dāng)在其他圖像數(shù)據(jù)的前景中顯示像素?cái)?shù)據(jù)文件中的圖像時(shí),使用每個(gè)阿爾法值來設(shè)置對應(yīng)的像素的透明度,阿爾法值零對應(yīng)于完全透明,不斷增加的阿爾法值對應(yīng)于不斷提高的不透明度的層次,包括(a)為像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值初始化為m+1;(b)對像素?cái)?shù)據(jù)文件執(zhí)行不認(rèn)可阿爾法通道的應(yīng)用程序;(c)通過為具有阿爾法值m的像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)的阿爾法值更改為0,并為具有阿爾法值0的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為完全不透明的阿爾法值,來改變每個(gè)像素?cái)?shù)據(jù)值的阿爾法值;以及,(d)在認(rèn)可阿爾法通道的環(huán)境中顯示像素?cái)?shù)據(jù)文件。
6.如權(quán)利要求5所述的方法,其特征在于,每個(gè)像素?cái)?shù)據(jù)值的阿爾法值的所述變化包括為像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值減少m+1,以2n為模。
7.操作系統(tǒng)、其上存儲(chǔ)有多個(gè)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)、協(xié)處理設(shè)備、計(jì)算設(shè)備以及攜帶用于執(zhí)行如權(quán)利要求5所述的方法的計(jì)算機(jī)可執(zhí)行指令的被調(diào)制的數(shù)據(jù)信號中的至少一種。
8.一種用于在認(rèn)可阿爾法通道的環(huán)境中使用不認(rèn)可阿爾法通道的應(yīng)用程序所述的方法,其中,(i)不認(rèn)可阿爾法通道的應(yīng)用程序?qū)⑾袼財(cái)?shù)據(jù)值寫入像素?cái)?shù)據(jù)值的一個(gè)現(xiàn)存的像素?cái)?shù)據(jù)文件;(ii)每個(gè)像素?cái)?shù)據(jù)值包括一個(gè)n位阿爾法值,并對應(yīng)于一個(gè)像素位置;(iii)不認(rèn)可阿爾法通道的應(yīng)用程序?yàn)槊總€(gè)像素將像素?cái)?shù)據(jù)值的阿爾法值設(shè)置為m,每個(gè)像素的像素?cái)?shù)據(jù)值由該應(yīng)用程序?qū)懭胂袼財(cái)?shù)據(jù)文件;(iv)認(rèn)可阿爾法通道的環(huán)境是一種圖形環(huán)境,在該環(huán)境中,當(dāng)在其他圖像數(shù)據(jù)的前景中顯示像素?cái)?shù)據(jù)文件中的圖像時(shí),使用每個(gè)阿爾法值來設(shè)置對應(yīng)的像素的透明度,阿爾法值零對應(yīng)于完全透明,不斷增加的阿爾法值對應(yīng)于不斷提高的不透明度的層次;以及(v)由不認(rèn)可阿爾法通道的應(yīng)用程序?qū)懭氲南袼氐乃璨煌该鞫鹊陌柗ㄖ凳莗,其特征在于包括(a)為像素?cái)?shù)據(jù)文件中的所有像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值初始化為2n-p+m;(b)對像素?cái)?shù)據(jù)文件執(zhí)行不認(rèn)可阿爾法通道的應(yīng)用程序;(c)通過為具有阿爾法值2n-p+m的像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為m,并為具有阿爾法值m的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為p,來改變每個(gè)像素?cái)?shù)據(jù)值的阿爾法值;以及,(d)在認(rèn)可阿爾法通道的環(huán)境中顯示像素?cái)?shù)據(jù)文件。
9.如權(quán)利要求8所述的方法,其特征在于,像素?cái)?shù)據(jù)值的阿爾法值的所述變化包括為像素?cái)?shù)據(jù)文件中的所有像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值減少p-m,以2n為模。
10.如權(quán)利要求8所述的方法,其特征在于,像素?cái)?shù)據(jù)值的阿爾法值的所述變化包括為像素?cái)?shù)據(jù)文件中的所有像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值減少m-p,以2n為模。
11.如權(quán)利要求8所述的方法,其特征在于,p或m中的至少一個(gè)是零。
12.操作系統(tǒng)、其上存儲(chǔ)有多個(gè)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)、協(xié)處理設(shè)備、計(jì)算設(shè)備以及攜帶用于執(zhí)行如權(quán)利要求8所述的方法的計(jì)算機(jī)可執(zhí)行指令的被調(diào)制的數(shù)據(jù)信號中的至少一種。
13.一種計(jì)算機(jī)圖形系統(tǒng),它包括計(jì)算機(jī)可執(zhí)行模塊,用于在認(rèn)可阿爾法通道的環(huán)境中使用由不認(rèn)可阿爾法通道的應(yīng)用程序著色的像素?cái)?shù)據(jù)文件中的圖像,其中,(i)不認(rèn)可阿爾法通道的應(yīng)用程序?qū)⑾袼財(cái)?shù)據(jù)值寫入像素?cái)?shù)據(jù)值的一個(gè)現(xiàn)存的像素?cái)?shù)據(jù)文件;(ii)每個(gè)像素?cái)?shù)據(jù)值包括一個(gè)n位阿爾法值,并對應(yīng)于一個(gè)像素位置(iii)不認(rèn)可阿爾法通道的應(yīng)用程序?yàn)槊總€(gè)像素將像素?cái)?shù)據(jù)值的阿爾法值設(shè)置為0,每個(gè)像素的像素?cái)?shù)據(jù)值由該應(yīng)用程序?qū)懭胂袼財(cái)?shù)據(jù)文件;以及(iv)認(rèn)可阿爾法通道的環(huán)境是一種圖形環(huán)境,在該環(huán)境中,當(dāng)在其他圖像數(shù)據(jù)的前景中顯示像素?cái)?shù)據(jù)文件中的圖像時(shí),使用每個(gè)阿爾法值來設(shè)置對應(yīng)的像素的透明度,阿爾法值零對應(yīng)于完全透明,不斷增加的阿爾法值對應(yīng)于不斷提高的不透明度的層次,所述計(jì)算機(jī)模塊包括(a)用于為像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值初始化為1的裝置(b)用于對像素?cái)?shù)據(jù)文件執(zhí)行不認(rèn)可阿爾法通道的應(yīng)用程序的裝置;(c)用于改變每個(gè)像素?cái)?shù)據(jù)值的阿爾法值的裝置,其實(shí)行可通過為具有阿爾法值1的像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為0,并為具有阿爾法值0的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為完全不透明的阿爾法值;以及,(d)用于在認(rèn)可阿爾法通道的環(huán)境中顯示像素?cái)?shù)據(jù)文件的裝置。
14.如權(quán)利要求13的計(jì)算機(jī)圖形系統(tǒng),其特征在于,用于改變像素?cái)?shù)據(jù)值的阿爾法值的所述裝置包括用于為像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)而將像素?cái)?shù)據(jù)值的阿爾法值減少1的裝置,以2n為模。
15.如權(quán)利要求13所述的方法,其特征在于,從包括1和8的一組中選擇n。
16.一種計(jì)算機(jī)圖形系統(tǒng),它包括計(jì)算機(jī)可執(zhí)行模塊,用于在認(rèn)可阿爾法通道的環(huán)境中使用不認(rèn)可阿爾法通道的應(yīng)用程序,其中,(i)不認(rèn)可阿爾法通道的應(yīng)用程序?qū)⑾袼財(cái)?shù)據(jù)值寫入像素?cái)?shù)據(jù)值的一個(gè)現(xiàn)存的像素?cái)?shù)據(jù)文件;(ii)每個(gè)像素?cái)?shù)據(jù)值包括一個(gè)n位阿爾法值,并對應(yīng)于一個(gè)像素位置;(iii)不認(rèn)可阿爾法通道的應(yīng)用程序?yàn)槊總€(gè)像素將像素?cái)?shù)據(jù)值的阿爾法值設(shè)置為m,每個(gè)像素的像素?cái)?shù)據(jù)值由該應(yīng)用程序?qū)懭胂袼財(cái)?shù)據(jù)文件;(iv)認(rèn)可阿爾法通道的環(huán)境是一種圖形環(huán)境,在該環(huán)境中,當(dāng)在其他圖像數(shù)據(jù)的前景中顯示像素?cái)?shù)據(jù)文件中的圖像時(shí),使用每個(gè)阿爾法值來設(shè)置對應(yīng)的像素的透明度,阿爾法值零對應(yīng)于完全透明,不斷增加的阿爾法值對應(yīng)于不斷提高的不透明度的層次;以及(v)由不認(rèn)可阿爾法通道的應(yīng)用程序?qū)懭氲南袼氐乃璨煌该鞫鹊陌柗ㄖ凳莗,所述計(jì)算機(jī)可執(zhí)行模塊包括(a)用于為像素?cái)?shù)據(jù)文件中的所有像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)值的阿爾法值初始化為2n-p+m的裝置;(b)用于對像素?cái)?shù)據(jù)文件執(zhí)行不認(rèn)可阿爾法通道的應(yīng)用程序的裝置;(c)用于改變每個(gè)像素?cái)?shù)據(jù)值的阿爾法值的裝置,其實(shí)行可通過為具有阿爾法值2n-p+m的像素?cái)?shù)據(jù)文件中的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為m,并為具有阿爾法值m的每個(gè)像素?cái)?shù)據(jù)值,將像素?cái)?shù)據(jù)文件中的像素?cái)?shù)據(jù)值的阿爾法值更改為p;以及,(d)用于在認(rèn)可阿爾法通道的環(huán)境中顯示像素?cái)?shù)據(jù)文件的裝置。
17.如權(quán)利要求16所述的計(jì)算機(jī)圖形系統(tǒng),其特征在于,用于改變像素?cái)?shù)據(jù)的阿爾法值的所述裝置包括用于為像素?cái)?shù)據(jù)文件中的所有像素?cái)?shù)據(jù)而將像素?cái)?shù)據(jù)的阿爾法值增加p-m的裝置,以2n為模。
18.如權(quán)利要求16所述的計(jì)算機(jī)圖形系統(tǒng),其特征在于,用于改變像素?cái)?shù)據(jù)的阿爾法值的所述裝置包括用于為像素?cái)?shù)據(jù)文件中的所有像素?cái)?shù)據(jù)而將像素?cái)?shù)據(jù)的阿爾法值增加m-p的裝置,以2n為模。
19.如權(quán)利要求16所述的計(jì)算機(jī)圖形系統(tǒng),其特征在于,p或m中的至少一個(gè)是零。
全文摘要
在認(rèn)可阿爾法通道的環(huán)境中使用由不認(rèn)可阿爾法通道的應(yīng)用程序著色的圖像。通過將每個(gè)像素的阿爾法值設(shè)置為1,來初始化將由不認(rèn)可阿爾法通道的應(yīng)用程序?qū)懭氲南袼財(cái)?shù)據(jù)文件。然后,認(rèn)可阿爾法通道的應(yīng)用程序?qū)Ρ怀跏蓟南袼財(cái)?shù)據(jù)文件進(jìn)行寫入,改變一些或所有像素?cái)?shù)據(jù)。隨后,將每個(gè)像素的阿爾法值減少1(以256為模),從而使改變的像素不透明,使未改變的像素透明。
文檔編號G06T11/40GK1471052SQ0314936
公開日2004年1月28日 申請日期2003年6月17日 優(yōu)先權(quán)日2002年6月28日
發(fā)明者J·M·J·諾爾, J M J 諾爾 申請人:微軟公司