alpha和color key

1、alphahtml

1.透明度,通常取值0-255算法

2.Alpha 通道: 
   Alpha 通道是爲保存選擇區域而專門設計的通道。在生成一個圖像文件時,並沒必要須產生 Alpha 通道。一般它是由人們在圖像處理過程當中人爲生成,並從中讀取選擇區域信息的。所以在輸出製版時, Alpha 通道會由於與最終生成的圖像無關而被刪除。但也有     時,好比在三維軟件最終渲染輸出的時候,會附帶生成一張 Alpha 通道,用以在平面處理軟件中做後期合成。除了 photoshop 的文件格式 PSD 外, GIF 與 TIFF 格式的文件均可以保存 Alpha 通道。而 GIF 文件還能夠用 Alpha 通道做圖像的去背景處理。因       此,咱們能夠利用 GIF 文件的這一特性製做任意形狀的圖形。緩存

3.Alpha通道的概念與功能數據結構

 在計算機圖形學中,一個RGB顏色模型的真彩圖形,用由紅、綠、藍三個色彩信息通道合成的,每一個通道用了8位色彩深度,共計24位,包含了全部彩色信息。爲實現圖形的透明效果,採起在圖形文件的處理與存儲中附加上另外一個8位信息的方法,這個附          加的表明圖形中各個素點透明度的通道信息就被叫作Alpha通道ide

    Alpha通道使用8位二進制數,就能夠表示256級灰度,即256級的透明度。白色(值爲255)的Alpha像素用以定義不透明的彩色像素,而黑色(值爲0)的Alpha通道像素用以定義透明像素,介於黑白之間的灰度(值爲30-255)的Alpha像素用以定義不一樣程度       的半透明像素。於是經過一個32位總線的圖形卡來顯示帶Alpha通道的圖形,就可能呈現出透明或半透明的視覺效果。工具

    3.1.一個透明或半透明圖形的數學模型應當以下:
    爲了便於下面的分析,設Alpha值[0,255]區間映射爲[0,1]區間相對應的值表示,即Alpha值爲0—1之間的數值。則圖形文件中各個像素點可表示爲:
    Graphx(Redx,Greenx,Bulex,Alphax)
    屏幕上相應像素點的顯示值就轉換爲:
    Dispx(Redx*Alphax,Greenx*Alphax,Bluex*Alphax)
    Alpha通道不只用於單個圖形的透明或半透明顯示,更重要的是在圖像合成中被普遍運用。動畫

4.根據Alpha通道數據進行圖像混合的算法:
    事實上,咱們把須要組合的顏色計算出不含Alpha份量的原始RGB份量而後相加即可。如:兩幅圖像分別爲A和B,由這兩幅圖像組合而成的圖像稱爲C,則可用以下四元組表示圖A和B,三元組表示圖像C:
    A:(Ra,Ga,Ba,Alphaa)
    B:(Rb,Gb,Bb,Alphab)
    C:(Rc,Gc,Bc)
    根據上述算法,則:
    Rc=Ra*Alphaa+Rb*Alphab
    Gc=Ga*Alphaa+Gb*Alphab
    Bc=Ba*Alphaa+Bb*Alphab
    這就是兩圖像混合後的三原色份量。若是有多幅圖像須要混合,則按照以上方法兩幅兩幅地進行混合。ui

5.圖像處理軟件Photoshop中的Alpha通道
   在圖像處理軟件Photoshop中,通道是一個最爲基本的概念,顏色通道表明了該圖像的主要色彩信息,附加通道有用於印刷的專色通道和存儲、修改選取區域的Alpha通道。
   一般狀況下,單首創建的新通道就是Alpha通道,這個通道並不存儲圖像的色彩,而是將選擇域做爲8位灰度圖像存放並被加入到圖像的顏色通道中。於是Alpha通道的內容表明的不是圖像的顏色,而是選擇區域,其中的白色表示徹底選取區域,黑色爲非選取      區域,不一樣層次的灰度表明不一樣的選取百分率,最多可有256級灰階。
   對Alpha通道內容的操做,便是建立、存儲、修改咱們所須要的選取區域。如在目標圖層上載入該選區(即運用該Alpha通道)即可實現任意層次的選取。經過多個Alpha通道之間的計算或Alpha通道與圖層的合成便可以產生許多特殊的效果。所以,Alpha通道      功能能夠說是Photoshop編輯合成多媒體做品中所使用的背景圖片、主題圖片、按鈕、導航標誌等素材的一大法寶。spa

6.Alpha通道在動畫創做軟件中的應用
   Alpha通道不管是在二維動畫軟件仍是三維動畫軟件中都有普遍的應用。
  你們熟知的3DMAX動畫軟件中提供了動畫做品後期合成的工做環境(即VIDEO POST),利用VIDEO POST的圖像合成功能能夠實現一次處理許多不一樣層次的圖像文件與動畫場景合成的設定。其中使用最頻繁的合成方式Alpha  composing就是靠Alpha通道來     實現的。
  3DMAX能根據文件的輸出格式產生包含Alpha通道的32位文件格式(特別是32位的Targa圖像文件)。當進行渲染時,任何不含物體的區域的Alpha值爲0,實色的物體的Alpha值爲255,而透明材質的Alpha值介於0~255間。利用3DMAX的這一特性可在該軟件     或其它軟件中實現各類透明重疊的圖像或動畫效果。
  Flash矢量動畫中一樣具備Alpha通道功能的運用。Alpha是Flash動畫場景中圖形符號(graphic)的一個主要屬性,改變其值(0~100之間)即可改變對象符號的透明程度。如在各關鍵幀設定某圖形符號以不一樣的Alpha值,則該圖形符號就呈現出動態變化的透明效果。經過編寫動做腳本(Action scripting),用戶交互式地改Alpha值,更能使動畫做品生動有趣。.net

7.利用Alpha通道在視頻編輯軟件中實現高疊軌道的透明合成
   在視頻處理軟件中,一般要將多個視頻片斷按照要求重疊在一塊兒造成透明或半透明效果。Premiere電影編輯軟件裏提供了多達97個視頻高疊軌道用以實現影像片斷的合成。在高疊片斷的video Option命令中有一個專門用於合成的透明設置選項Transparency,    它提供了許多key Type基本(透明)類型。其中Alpha channel key就是利用影像或圖片的Alpha通道在片斷上選定區域造成透明效果。
    一些影視創做人員在節目編輯中,爲了把廣告的圖標、報道題花等圖案做爲標記或欄目標題疊加在畫面上,使用Photoshop、3DMAX或Cool3d等軟件生成帶Alpha通道的32位TGA圖片或圖片序列,在非編系統軟件中運用Alpha channel key功能實現標題字幕      或圖標的高疊。

 8. Alpha通道在多媒體集成工具Authorware中的運用
    Authorware5.0之前的版本中的圖片只有五種透明方式:爲Opaque mode(不透明模式)、Matted mode(邊緣透明模式)、Transparent mode(透明模式)、Inverse mode(反轉模式)、Erase mode(擦除模式)。這些透明方式的共同問題是隻能透明白色部分並且要純白的才能夠,也沒法實現製做半透明的圖片。Authorware5.0及其之後的版本已支持Alpha通道做爲圖片的透明方式。利用圖片的Alpha通道,信息可精確地透明相應畫面的每個部分,產生十分完美的透明或半透明效果。尤爲是,使用其它工具完成的半透明圖片是靜止的,並且圖片中各個部分位置是固定的,而在Authorware中經過Alpha透明模式結合Transitions過渡屬性和位置移動動畫設置實現的半透明合成能夠動態地進行,不但能夠任意改變各部分的位置,並且還能夠任意調整各部分大小,其操做的靈活性和效果的豐富性是可想而知的。
    筆者曾在使用Authorware5.0模擬漢字書寫筆畫的教學課件中運用Alpha通道技術,取得了很好的效果。以「木」字爲例。
    第一步,利用Photoshop5.0作好以下四張圖片,分別命名爲「木1.psd」、「木2.psd」、「木3.psd」和「木4.psd」。四張圖片內容徹底同樣,只是Alpha通道不一樣。
    第二步,將四張圖片載入Authorware5.0文檔中按以下安排顯示順序:
    第三步,設置全部顯示圖標都爲Alpha mode透明方式以呈現相應筆畫,並設置各顯示圖標適當的Transition過渡方式,以展現各筆畫正確的書寫過程。圖標「木1.psd」選取Transition屬性爲Wipe中的Wipe Right,圖標「木2.psd」選取Wipe中的Wipe Down,圖標「木3.psd」選取Stirps中的Strips on Top,Build Left,圖標「木4.psd」選取Strips中的Strips on Top,Build Right。爲使效果更準確,圖標間可添加一個等待圖標,保證筆畫之間有必定時間間隔或經過點擊鼠標來控制書寫速度。

10.opengl 裏面,alpha值一般是在激活了混合操做以後起做用的。用來將已經處理過的片元顏色值與存儲在幀緩存中的像素顏色值結合起來。若是不進行混合操做,每一個新的片元都將被opengl當成是不透明的,覆蓋掉已經存在的全部顏色值。利用混合操做能夠實現半透明等狀態。能夠這樣看alpha值,將片元的RGB份量考慮爲對顏色的表示,而將alpha值份量考慮爲顏色的不透明度。

9.結束語
    Alpha通道技術自己並不複雜,但其運用上的創意是無限的。不斷總結在多媒體課件做品開發中運用Alpha通道技術的途徑以提升做品技術質量、加強做品藝術感染力,是一個永無止境的課題。

 

2、colorkey

http://blog.chinaunix.net/uid-14442981-id-3766181.html

1.大圖像A是1920x1080大小,在上面貼一個小圖像300x200(稱爲圖像B,做爲OSD),通常這個osd的數據結構多是:
struct osd_type {
        void *raster;          //圖像點陣
        int alpha;              //0到100的透明度
        int colorkey;          //colorkey值
        int flag;                 //標記(alpha或colorkey使能)
};(這個數據結構是我想象出來的,不要對號入座,八九不離十吧)
flag 好比設置爲 ENABLE_ALPHA | ENABLE_COLORKEY,colorkey爲0xffffff(白色),alpha爲50%;
那麼實際效果是:osd的0xffffff所有過濾掉,其它地方顯示50%亮度。

2.如圖,小人的背景是青色的(R:0,G:FF,B:FF),那麼咱們如今要將小人背景透明化,則如今的color key就是青色的。

3.Colorkey技術是做用在兩個圖像疊加混合的時候,對特殊色作特殊過濾,符合條件的區域叫match區,在match區就所有使用另一個圖層的顏色值,不符合條件的區域就是非match區,非match區就是走普通的alpha混合。Alpha值越大就是越不透明。

相關文章
相關標籤/搜索