BLENDFUNCTION通過指定源和目標位圖的透明混合參數來控制透明混合,AlphaBlend是Window自帶的GDI函數,在用GUI的時候為了達到更漂亮的效果我們常常用它,它的參數之一的類型就是BLENDFUNCTION。
blendfunction結構
typedefstruct_BLENDFUNCTION{
BYTEBlendOp;
BYTEBlendFlags;
BYTESourceConstantAlpha;
BYTEAlphaFormat;
}BLENDFUNCTION,*PBLENDFUNCTION,*LPBLENDFUNCTION;
blendfunction參數編輯
BlendOp指定源混合操作。唯一的源和目標的混合方式已定義為AC_SRC_OVER;
BlendFlags必須是0;
SourceConstantAlpha指定一個alpha透明度值,這個值將用于整個源位圖;該SourceConstantAlpha值與源位圖的每個像素的alpha值組合;如果設置為0,就會假定你的圖片是透明的;如果需要使用每像素本身的alpha值,設置SourceConstantAlpha值255(不透明);
AlphaFormat這個參數控制源和目標的解析方式,AlphaFormat參數有以下值:
AC_SRC_ALPHA:這個值在源有Alpha通道時(也就是操作的圖本身帶有透明通道信息時),提醒系統API調用函數前必須預先乘以alpha值,也就是說位圖上某個像素位置的red、green、blue通道值必須先與alpha相乘。例如,如果alpha透明值是x,那么red、green、blue三個通道的值必須乘以x并且再除以255(因為alpha的值的范圍是0~255),之后才能被調用。
應用備注編輯
1、當AlphaFormat參數的值是AC_SRC_ALPHA,那么源位圖必須是32位深,否則的話,AlphaBland函數將調用失敗
2、當BlendOp參數是AC_SRC_OVER時,源位圖根據alpha透明度值直接覆蓋在目標位圖之上
3、如果源位圖不帶有透明度信息(那樣的話,AC_SRC_ALPHA不設置),將由SourceConstanAlpha的值來決定如何混合源位圖與目標位圖,如下表中所示。表中SCA代表SourceConstantAlpha的值,同樣,SCA除以了255,因為它的范圍是從0到255.
Dst.Red=Src.Red*(SCA/255.0)+Dst.Red*(1.0-(SCA/255.0))
Dst.Green=Src.Green*(SCA/255.0)+Dst.Green*(1.0-(SCA/255.0))
Dst.Blue=Src.Blue*(SCA/255.0)+Dst.Blue*(1.0-(SCA/255.0))
在這種情況下,如果目標位圖有透明度信息,那么混合方式將按照下面的公式來:
Dst.Alpha=Src.Alpha*(SCA/255.0)+Dst.Alpha*(1.0-(SCA/255.0))
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖片)關于基德哪幾集有出現的知識大家了解嗎?以下就是小編整理的關于基德哪幾集有出現的介紹,希望可以給到大家一些參考,一起來了解下吧!基德出現的集數如下:1、第七十六集:柯南對決怪盜基德,基德的首次出場,與柯南的初次對決;2、第二百一十九集:被召集的名偵探工藤新一對決怪盜基德,基德參與新一沒有正面接觸,他們共同保護了城市的大鐘;3、第三百五十六集:怪盜基德的驚異空中步行,基德接受了鈴木次郎的挑...
在銀行存錢的時候最好是開具存款證明,避免后期取錢的時候因為沒有相應的存款證據,導致這方面的糾紛,很多人雖然很熟悉銀行存款,但是還是第一次聽說存款證明,更不知道怎么開。存款證明可以線上辦理嗎?存款證明可以線上辦理,打開存款銀行的手機銀行APP即可,下面以招商銀行為例:【1】打開招商銀行APP,登錄之后點擊首頁的賬戶總預覽;【2】進入賬戶總覽頁面后,點擊右上角的…;【3】再點擊存款證明;...
電匯多久到賬?國內電匯和跨境電匯的到賬時間不一樣。一般國內同行電匯實時到賬,同城跨行電匯也比較快,一般在半小時以內??缧须妳R到賬時間較長,一般在三個工作日內,節假日不計入工作日??缇畴妳R到賬時間相對較長,一般需要3-7天。電匯是什么意思?電匯是一種匯兌結算方式,是匯款入將一定款項交存匯款銀行,匯款銀行通過電報或電傳給目的地的分行或代理行(匯入行),指示匯入行向收款人支付一定金額的一種匯款方式??梢?..