青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

BLENDFUNCTION

Posted on 2010-09-07 14:39 S.l.e!ep.¢% 閱讀(930) 評論(1)  編輯 收藏 引用 所屬分類: DirectUI

typedef struct _BLENDFUNCTION {
? BYTE BlendOp;
? BYTE BlendFlags;
? BYTE SourceConstantAlpha;
? BYTE AlphaFormat;
} BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;


The BLENDFUNCTION structure controls blending by specifying the blending functions for source and destination bitmaps.
BLENDFUNCTION這種結構的混合控制通過指定源和目標位圖的混合功能
BlendOp

The source blend operation. Currently, the only source and destination blend operation that has been defined is AC_SRC_OVER. For details, see the following Remarks section.

指定源混合操作。目前,唯一的源和目標混合,已定義的AC_SRC_OVER; 即根據源alpha值把源圖像疊加到目標圖像上。OpenGLalpha混合還支持其他的方式,如常量顏色源。

BlendFlags

Must be zero.


SourceConstantAlpha

Specifies an alpha transparency value to be used on the entire source bitmap. The SourceConstantAlpha value is combined with any per-pixel alpha values in the source bitmap. If you set SourceConstantAlpha to 0, it is assumed that your image is transparent. Set the SourceConstantAlpha value to 255 (opaque) when you only want to use per-pixel alpha values.

指定一個alpha透明度值將用于整個源位圖;該SourceConstantAlpha值與任何在源位圖的每個像素的alpha值組合;如果設置為0,就會假定你的圖片是透明的;如果需要使用每像素alpha值,設置SourceConstantAlpha值255(不透明);

AlphaFormat

This member controls the way the source and destination bitmaps are interpreted. AlphaFormat has the following value.

Value Meaning
AC_SRC_ALPHA This flag is set when the bitmap has an Alpha channel (that is, per-pixel alpha). Note that the APIs use premultiplied alpha, which means that the red, green and blue channel values in the bitmap must be premultiplied with the alpha channel value. For example, if the alpha channel value is x, the red, green and blue channels must be multiplied by x and divided by 0xff prior to the call.


  AlphaFormat 此成員控制源和目標位圖的解釋;看以下值:
  AC_SRC_ALPHA 這個標志被設置當那位圖有Alpha通道(也就是說,每個像素的Alpha);
  例如,如果Alpha通道值是x,紅色,綠色和藍色通道必須乘以x和由
  0xff分開在調用之前

Remarks

When the AlphaFormat member is AC_SRC_ALPHA, the source bitmap must be 32 bpp. If it is not, the AlphaBlend function will fail.

When the BlendOp member is AC_SRC_OVER, the source bitmap is placed over the destination bitmap based on the alpha values of the source pixels.

If the source bitmap has no per-pixel alpha value (that is, AC_SRC_ALPHA is not set), the SourceConstantAlpha value determines the blend of the source and destination bitmaps, as shown in the following table. Note that SCA is used for SourceConstantAlpha here. Also, SCA is divided by 255 because it has a value that ranges from 0 to 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))

?

If the destination bitmap has an alpha channel, then the blend is as follows.

Dst.Alpha= Src.Alpha * (SCA/255.0)+ Dst.Alpha * (1.0 - (SCA/255.0))

?

If the source bitmap does not use SourceConstantAlpha (that is, it equals 0xFF), the per-pixel alpha determines the blend of the source and destination bitmaps, as shown in the following table.

Dst.Red= Src.Red+ (1 - Src.Alpha) * Dst.Red
Dst.Green= Src.Green+ (1 - Src.Alpha) * Dst.Green
Dst.Blue= Src.Blue+ (1 - Src.Alpha) * Dst.Blue

?

If the destination bitmap has an alpha channel, then the blend is as follows.

Dest.alpha= Src.Alpha+ (1 - SrcAlpha) * Dst.Alpha

?

If the source has both the SourceConstantAlpha (that is, it is not 0xFF) and per-pixel alpha, the source is pre-multiplied by the SourceConstantAlpha and then the blend is based on the per-pixel alpha. The following tables show this. Note that SourceConstantAlpha is divided by 255 because it has a value that ranges from 0 to 255.

Src.Red= Src.Red* SourceConstantAlpha / 255.0;
Src.Green= Src.Green* SourceConstantAlpha / 255.0;
Src.Blue= Src.Blue* SourceConstantAlpha / 255.0;
Src.Alpha= Src.Alpha* SourceConstantAlpha / 255.0;
Dst.Red= Src.Red+ (1 - Src.Alpha) * Dst.Red
Dst.Green= Src.Green+ (1 - Src.Alpha) * Dst.Green
Dst.Blue= Src.Blue+ (1 - Src.Alpha) * Dst.Blue
Dst.Alpha= Src.Alpha+ (1 - Src.Alpha) * Dst.Alpha

?

最后一個字段AlphaFormat有兩個選擇:0表示常量alpha值,AC_SRC_ALPHA表示每個像素有各自的alpha通道。

如果AlphaFormat字段為0,源位圖中的所有像素使用同樣的常量alpha值,即SourceConstantAlpha字段中的值,該值實際上是0255,而不是01。這里0表示完全透明,255表示完全不透明。目標像素以255-SourceConstantAlpha值作為alpha值。

如果AlphaFormat字段的值是AC_SRC_ALPHA,源設備表面的每個像素必須有各自的alpha通道。即,必須是32-bpp的物理設備上下文,或是選中了32-bpp DDBDIB段的內存設備上下文。這些情況下,每個源像素有48位通道:紅、綠、藍和alpha。每個像素的alpha通道和SourceConstantAlpha字段一起用于把源和目標混合起來。實際用于計算的運算式如下:

Tmp.Red ??= Src.Red ??* SourceConstantAlpha / 255;

Tmp.Green = Src.Green * SourceConstantAlpha / 255;

Tmp.Blue ?= Src.Blue ?* SourceConstantAlpha / 255;

Tmp.Alpha = Src.Alpha * SourceConstantAlpha / 255;

Beta????? = 255 – Tmp.alpha;

Dst.Red ??= Tmp.Red? ?+ Round((Beta * Dst.Red? )/255);

Dst.Green = Tmp.Green + Round((Beta * Dst.Green)/255);

Dst.Blue ?= Tmp.Blue ?+ Round((Beta * Dst.Blue )/255);

Dst.Alpha = Tmp.Alpha + Round((Beta * Dst.Alpha)/255);


Feedback

# re: BLENDFUNCTION   回復  更多評論   

2012-08-09 09:16 by changmning
有這個函數BLENDFUNCTION的用法實例嗎?
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            噜噜噜噜噜久久久久久91| 亚洲视屏在线播放| 免费观看日韩av| 久久综合色影院| 红桃视频欧美| 亚洲高清在线播放| 欧美日本国产| 午夜精品一区二区三区电影天堂 | 免费在线观看精品| 久久午夜精品| 一本久久综合亚洲鲁鲁五月天| 91久久国产综合久久| 欧美日韩一区综合| 久久激情综合| 欧美高清视频一区| 午夜一级久久| 久久久久亚洲综合| 99在线热播精品免费99热| 亚洲免费小视频| 1024成人| 亚洲综合导航| 亚洲黄色在线视频| 亚洲小说欧美另类婷婷| 精品99视频| 99人久久精品视频最新地址| 国产亚洲欧美aaaa| 亚洲精品美女久久久久| 国产私拍一区| 亚洲毛片网站| 一色屋精品视频在线看| 一本久久综合亚洲鲁鲁| 黄色小说综合网站| 99精品视频一区| 亚洲高清不卡av| 亚洲男人天堂2024| av成人免费在线观看| 久久超碰97人人做人人爱| 一区二区三区四区国产| 久久青青草综合| 欧美在线观看一二区| 欧美精品一区二区高清在线观看| 久久久久久九九九九| 欧美日韩免费视频| 亚洲电影在线播放| 国产一区在线看| 亚洲视频在线观看| 一二美女精品欧洲| 欧美成年网站| 久久免费精品日本久久中文字幕| 欧美午夜美女看片| 亚洲精品网站在线播放gif| 国内自拍一区| 先锋影音一区二区三区| 午夜精品亚洲| 国产精品麻豆va在线播放| 亚洲区免费影片| 亚洲黄色视屏| 麻豆精品视频在线观看视频| 老司机免费视频一区二区| 韩日在线一区| 久久久国产精品亚洲一区 | 亚洲美女视频| 欧美jizz19hd性欧美| 久久综合九色| 一区二区三区在线看| 久久大综合网| 久久综合色88| 在线观看一区二区精品视频| 久久视频在线视频| 欧美福利视频在线| 亚洲精品久久久久久久久久久| 美国成人直播| 亚洲人永久免费| 99视频精品| 欧美午夜片在线免费观看| 中文网丁香综合网| 欧美在线观看日本一区| 国产亚洲在线观看| 久久亚洲精品视频| 亚洲人成啪啪网站| 亚洲欧美一区在线| 国产综合精品一区| 久久久久久久综合色一本| 欧美成人午夜激情| 一区二区三区四区五区精品| 国产精品视频网站| 久久国产精品久久精品国产 | aaa亚洲精品一二三区| 欧美日韩一区二区三区四区五区| 一区二区三区四区在线| 性伦欧美刺激片在线观看| 国内精品视频在线观看| 久热精品视频| 一本色道久久综合精品竹菊| 欧美一区二区视频免费观看| 激情综合中文娱乐网| 欧美激情一区| 午夜性色一区二区三区免费视频| 美女国产一区| 亚洲一区二区三区成人在线视频精品 | 99国产精品99久久久久久| 欧美一区二区三区日韩| 亚洲成人在线视频网站| 欧美日韩国产电影| 亚洲欧美一区二区精品久久久| 欧美成人tv| 午夜一区在线| 亚洲日本成人| 国产一区二区毛片| 欧美日本高清视频| 久久久国产91| 中文一区在线| 亚洲激情av在线| 久久久久成人精品| 亚洲一区影院| 亚洲啪啪91| 国产真实精品久久二三区| 欧美伦理a级免费电影| 久久不射电影网| 亚洲视频一起| 亚洲精品一区在线| 欧美刺激午夜性久久久久久久| 亚洲欧美日韩一区二区| 99精品福利视频| 亚洲国产1区| 黄色一区二区在线| 国产美女精品视频| 国产精品久久久久77777| 欧美精品18+| 欧美大片专区| 久久在线免费观看| 久久国产精品99精品国产| 亚洲宅男天堂在线观看无病毒| 亚洲免费观看高清完整版在线观看熊 | 欧美黄色免费| 牛牛精品成人免费视频| 久久久久久电影| 久久美女性网| 久久精品国产精品| 欧美诱惑福利视频| 香蕉视频成人在线观看| 亚洲欧美日韩在线综合| 亚洲影院色在线观看免费| 中文精品视频| 亚洲私人影院在线观看| 亚洲在线一区| 亚洲欧美一区二区精品久久久| 亚洲影院在线观看| 性欧美大战久久久久久久免费观看 | 影院欧美亚洲| 亚洲国产精品999| 亚洲欧洲精品一区二区精品久久久| 激情一区二区| 亚洲国产天堂网精品网站| 亚洲三级视频在线观看| 99爱精品视频| 亚洲欧美国产精品桃花| 久久精品人人做人人综合| 久久久久久网站| 欧美黑人在线播放| 日韩亚洲一区在线播放| 亚洲在线第一页| 久久久女女女女999久久| 嫩模写真一区二区三区三州| 欧美日韩高清在线观看| 国产精品女同互慰在线看| 国语自产在线不卡| 亚洲精品偷拍| 亚洲欧美日韩天堂一区二区| 久久婷婷一区| 亚洲精品中文字幕女同| 亚洲视频网在线直播| 久久久精品一品道一区| 欧美成人免费大片| 国产精品美女久久久浪潮软件| 精品动漫一区二区| 一本久久a久久免费精品不卡| 欧美一区二区三区免费大片| 免费在线看成人av| 一本大道久久a久久精品综合| 欧美一区二区三区免费在线看| 欧美成人精品一区二区| 国产伦精品一区二区三区四区免费 | 亚洲一区综合| 免费亚洲一区二区| 一级成人国产| 美女图片一区二区| 国产精品永久免费| 亚洲清纯自拍| 久久久99精品免费观看不卡| 亚洲精品久久久久久下一站 | 香蕉久久一区二区不卡无毒影院 | 欧美华人在线视频| 国产亚洲欧洲一区高清在线观看 | 国产欧美一区二区精品仙草咪| 亚洲精品久久久蜜桃| 久久久久一区| 亚洲欧美激情精品一区二区| 欧美日韩不卡视频| 亚洲人体偷拍|