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

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.¢% 閱讀(931) 評論(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>
            欧美激情成人在线| 久久久最新网址| 麻豆久久婷婷| 欧美专区日韩视频| 欧美电影免费观看高清| 国内精品嫩模av私拍在线观看| 欧美一区二区三区免费看| 中文在线不卡| 欧美日韩国产成人| 一本色道久久88综合日韩精品 | 久久激情综合网| 欧美色图麻豆| 亚洲欧美日韩区| 亚洲一区二区三区三| 国产精品免费在线| 久久久久九九九| 久久久亚洲精品一区二区三区| 伊人久久男人天堂| 亚洲国产成人精品视频| 美女任你摸久久| 日韩视频免费观看| 亚洲视频一区在线| 国产情侣一区| 老色鬼久久亚洲一区二区| 久久免费高清| 亚洲视频一区二区在线观看| 亚洲深夜福利网站| 国产最新精品精品你懂的| 久久久久综合| 欧美美女bbbb| 性做久久久久久免费观看欧美| 亚洲免费网址| 在线观看亚洲a| 亚洲老司机av| 黄色国产精品一区二区三区| 亚洲黄色免费| 欧美视频免费在线| 久久久久久久久久码影片| 欧美成人精品在线播放| 午夜精品久久久久久久久久久久久| 欧美一区二区大片| 99国产精品99久久久久久粉嫩| 一本久久综合亚洲鲁鲁| 国内视频一区| 一本色道久久综合亚洲91| 狠狠色香婷婷久久亚洲精品| 久久综合色影院| 国产精品v日韩精品| 老巨人导航500精品| 欧美日韩在线免费| 能在线观看的日韩av| 欧美日韩一区在线播放| 老牛影视一区二区三区| 欧美极品欧美精品欧美视频| 久久九九99视频| 国产精品久久久久久久久久尿| 久久国产精品高清| 欧美日韩视频一区二区| 另类国产ts人妖高潮视频| 国产精品日韩精品欧美精品| 亚洲欧洲日本专区| 好吊色欧美一区二区三区四区| 亚洲视频精选在线| 亚洲电影天堂av| 欧美在线91| 香蕉尹人综合在线观看| 国产精品视频1区| 亚洲欧美日韩中文在线制服| 亚洲欧美综合精品久久成人| 国产精品久久国产精品99gif| 一区二区三区高清| 亚洲资源在线观看| 国产精品一区二区在线观看不卡| 亚洲最新在线| 欧美一级二区| 一区二区视频在线观看| 久久久久九九视频| 欧美大片免费观看| 一本综合久久| 国产精品无码永久免费888| 香蕉视频成人在线观看| 久久香蕉国产线看观看av| 在线观看91精品国产麻豆| 美女性感视频久久久| 亚洲精品欧美日韩专区| 亚洲欧美日韩精品| 一区二区在线观看视频| 欧美经典一区二区| 在线一区二区三区四区五区| 欧美一级播放| 亚洲日本成人网| 欧美视频一区二| 久久精品国产99| 亚洲国产精品精华液网站| 在线综合亚洲| 国产自产女人91一区在线观看| 久久蜜臀精品av| 一本在线高清不卡dvd| 久久精品视频一| 亚洲老板91色精品久久| 国产欧美日韩视频一区二区| 裸体丰满少妇做受久久99精品| 一区二区冒白浆视频| 久久婷婷国产麻豆91天堂| 亚洲精品欧美日韩专区| 国产欧美日韩亚洲精品| 欧美va日韩va| 欧美一区在线直播| 亚洲人成网站999久久久综合| 午夜精品久久久久久久| 亚洲区免费影片| 国产亚洲精品一区二555| 欧美黑人在线观看| 欧美一区二区三区四区在线观看| 亚洲精品国产精品乱码不99| 久久精品欧美日韩精品| 在线中文字幕一区| 亚洲电影视频在线| 国产亚洲精品福利| 欧美三级午夜理伦三级中视频| 久久久久久久久岛国免费| 亚洲一品av免费观看| 亚洲第一狼人社区| 久久网站热最新地址| 亚洲欧美精品伊人久久| 亚洲免费高清视频| 亚洲丶国产丶欧美一区二区三区| 国产精品成人一区二区艾草| 欧美激情亚洲国产| 另类尿喷潮videofree| 欧美一区二区三区视频| 亚洲综合久久久久| av成人免费在线观看| 亚洲九九爱视频| 亚洲人成亚洲人成在线观看图片 | 久久国产日本精品| 亚洲免费影视| 亚洲一区二区三区精品在线| 99精品欧美一区| 日韩一区二区精品在线观看| 日韩视频永久免费| 亚洲人成网站在线播| 最新日韩精品| 亚洲韩日在线| 亚洲黄色免费电影| 亚洲激情午夜| 日韩午夜在线电影| 99视频在线精品国自产拍免费观看 | 一区二区久久久久| 一区二区三区日韩欧美精品| 亚洲精品日韩激情在线电影| 日韩视频一区二区在线观看 | 欧美性大战久久久久久久| 欧美日韩精品免费观看视频完整| 欧美日韩伦理在线| 欧美巨乳在线观看| 欧美日韩一区二区高清| 欧美视频免费在线观看| 国产精品视频网站| 国产一区二区福利| 亚洲国产成人在线播放| 亚洲精品乱码久久久久久按摩观| 亚洲精品系列| 亚洲专区一二三| 久久人人97超碰国产公开结果 | 亚洲欧美成人| 久久嫩草精品久久久精品一| 免费欧美在线视频| 最新成人在线| 亚洲一区久久久| 久久精品人人爽| 欧美电影资源| 国产精品自拍网站| 在线观看日韩av电影| aa级大片欧美三级| 久久国产一区二区| 亚洲国产欧美久久| 国产精品99久久99久久久二8 | 最新国产の精品合集bt伙计| 亚洲视频在线播放| 久久精精品视频| 欧美了一区在线观看| 国产乱人伦精品一区二区| 一区二区在线视频| 亚洲一区在线免费| 男人的天堂亚洲在线| 夜久久久久久| 免费精品99久久国产综合精品| 国产精品久久久久一区| 亚洲国产精品成人| 欧美在线一级va免费观看| 亚洲国产精品小视频| 亚洲欧美日韩在线高清直播| 欧美国产第一页| 好吊一区二区三区| 欧美在线看片| 亚洲一区二区三区精品视频| 欧美黄色影院| 亚洲欧洲美洲综合色网| 久久天天综合|