日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

關于porter

 leon0821 2013-11-25
    porter-duff等式很簡單,記得上學時一般接觸的等式就叫定理啥的,為啥計算機的科學就只能叫等式呢,感覺上差了個檔次
    在說port-duff等式前先說說計算機的顏色的表示,簡單來說是RGB,再加上個Alpha透明度,這段下面的話可以跳過。計算機顏色以RGBchannel三原色來編碼(255,255,255)為白色,每種顏色channel的范圍是0-255,也有其它編碼方式如YUV,因為我不懂所以就不瞎掰了。但對于porter-duff除了三原色channel、定義了另一channel,Alpha channel,Alpha表示透明度,范圍也為0-255??梢圆榭磈ava-doc的AlphaComposite類,其中可以看到(A,R,G,B)表示顏色。(怎么感覺有點像科普文章了
    好了,正式話題。
    A:透明度channel,C:顏色channel
    下面是看一本書的源碼的應用程序,Src為紅色橢圓,Dst為藍色矩形
   
   
      
    Clear (Ar=0,Cr=0)
    Color和alpha都是0,dst被src覆蓋的像素會消失
   
                                                 
    Dst (Ar=Ad,Cr=Cd)
    無論覆蓋在dst的顏色是什么,都不會顯示該覆蓋顏色
   
    DstAtop
    Ar=As(1-Ad)+AsAd=As
    Cr=Cs(1-Ad)+CdAs
    效果是似乎Dst覆蓋在Src上
   
    DstIn和DstOut
    DstIn(Ar=Ad*As,Cr=Cd*As) DstOut(Ar=Ad*(1-As),Cr=Cd*(1-As)
    DstIn和DstOut是相反的,不考慮源像素顏色,使用源像素的透明度影響目標像素
   
    DstOver
    Ar=As*(1-Ad)+Ad;
    Cr=Cs*(1-Ad)+Cd;Dst部分覆蓋Src顯示,而且dst部分不受alpha影響。Dst外的Src部分正常顯示
   
    Src
    Ar=As
    Cr=Cs
    Dst被src覆蓋部分不顯示。其他正常,src正常顯示
   
    SrcAtop
    Ar=As*Ad+Ad*(1-As)=Ad;
    Cr=Cs*Ad+Cd*(1-As)
    Src在Dst部分與Dst混合,Dst顏色不丟失
    Src在Dst外顏色不顯示
   
    SrcIn
    Ar=As*Ad;
    Cr=Cs*Ad;
    Src在Dst部分替換Dst
    Src在Dst外舍棄
   
    SrcOut
    Ar=As*(1-Ad);
    Cr=Cs*(1-Ad);
    Src在Dst內(nèi)丟棄任何顏色
    Src在Dst外正常顯示
   
    SrcOver
    Ar=As+Ad(1-As)
    Cr=Cs+Cd(1-As);
    經(jīng)常見到的Ar和Cr混合
   
    XOR
    公式太長了,就不寫了,
    Src在Dst外的正常顯示
    Src在Dst內(nèi)的根據(jù)Src的Alpha的補值顯示(1-As)
   

    源碼下載:版權不歸本作者,源碼使用時請參照源文件的作者的要求使用http://www./Files/onedaylover/AlphaCompositesApplication.rar
   
posted on 2008-01-16 14:20 如果有一天de 閱讀(2075) 評論(0)  編輯  收藏 所屬分類: richclient

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多