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

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>
            亚洲美女淫视频| 欧美jizz19性欧美| 亚洲人成7777| 亚洲一区二区视频在线| 亚洲精品日日夜夜| 欧美一级一区| 亚洲一级网站| 欧美成人资源| 老司机免费视频一区二区| 国产精品mv在线观看| 亚洲第一区在线观看| 国产一级揄自揄精品视频| 99精品国产热久久91蜜凸| 亚洲国产综合在线| 久久久久久伊人| 欧美主播一区二区三区| 欧美日韩伊人| 亚洲精品视频中文字幕| 亚洲欧洲一区二区三区| 久久免费观看视频| 久久久久网站| 韩国三级在线一区| 欧美中文字幕视频| 久久久久久久97| 国产综合色产| 久久久xxx| 裸体丰满少妇做受久久99精品| 国产农村妇女毛片精品久久麻豆| 中文一区二区| 欧美亚洲日本网站| 国产精品毛片高清在线完整版| av成人黄色| 午夜精品久久久久久久99樱桃 | 亚洲精品偷拍| 欧美国产成人在线| 91久久精品一区二区别| 亚洲美女91| 欧美日韩高清区| 日韩亚洲在线| 性做久久久久久| 国模叶桐国产精品一区| 久久视频一区二区| 亚洲第一福利社区| 日韩亚洲欧美精品| 亚洲欧洲日产国码二区| 亚洲最新中文字幕| 欧美午夜免费电影| 午夜在线精品偷拍| 老牛国产精品一区的观看方式| 亚洲高清在线观看| 欧美黄色aa电影| 这里只有精品视频| 欧美中文字幕在线视频| 亚洲国产色一区| 欧美日韩视频免费播放| 亚洲小说欧美另类婷婷| 久久亚洲一区| 亚洲伦理精品| 国产精品三级久久久久久电影| 欧美专区亚洲专区| 亚洲欧洲在线一区| 欧美一区二区免费| 亚洲欧洲精品成人久久奇米网| 欧美日韩亚洲系列| 欧美专区一区二区三区| 亚洲开发第一视频在线播放| 欧美在线视频网站| 91久久精品国产91久久| 国产精品国产三级国产aⅴ9色| 久久精品一区二区三区四区| 亚洲毛片播放| 老色批av在线精品| 亚洲欧美在线看| 亚洲欧洲偷拍精品| 国产一区二区三区日韩| 欧美色道久久88综合亚洲精品| 久久久精品日韩| 亚洲视频一区二区在线观看| 欧美国产国产综合| 欧美中文字幕| 一区二区三区欧美亚洲| 亚洲第一综合天堂另类专| 欧美视频中文字幕在线| 欧美超级免费视 在线| 亚洲欧美99| 日韩午夜剧场| 亚洲福利在线观看| 久久人人97超碰国产公开结果| 亚洲午夜精品一区二区三区他趣 | 国产精品国产三级国产专播品爱网 | 亚洲国产日韩一区| 久久久久一区二区| 欧美一区二区三区四区夜夜大片 | 亚洲欧美成人一区二区三区| 亚洲国产精品久久人人爱蜜臀| 国产精品欧美日韩久久| 欧美精品在线观看播放| 久久资源在线| 久久婷婷久久一区二区三区| 性久久久久久久| 亚洲一区二区三区高清不卡| 99精品热视频只有精品10| 亚洲国产日韩精品| 欧美成人精品激情在线观看| 久久人人爽人人爽爽久久| 久久精品2019中文字幕| 在线看日韩欧美| 国产一二精品视频| 国产日韩欧美一区二区三区四区| 国产精品白丝jk黑袜喷水| 欧美日本亚洲韩国国产| 欧美a级一区二区| 欧美不卡高清| 欧美成人亚洲成人| 欧美成人午夜激情| 欧美精品一区二区视频| 欧美激情成人在线| 欧美日本国产一区| 欧美日韩伦理在线免费| 国产精品大片| 国产精品免费aⅴ片在线观看| 国产精品露脸自拍| 国产欧美综合一区二区三区| 国产日韩在线看| 亚洲第一二三四五区| 亚洲国产精品999| 亚洲免费观看| 一区二区三区黄色| 性久久久久久久| 久久免费精品视频| 欧美电影免费观看网站| 亚洲狼人综合| 午夜精品久久久久久久白皮肤| 午夜视频在线观看一区| 久久尤物视频| 欧美日韩精品国产| 国产精品青草久久| 一区二区亚洲精品国产| 亚洲人www| 亚洲欧美色婷婷| 久热这里只精品99re8久| 亚洲欧洲久久| 亚洲一区二区三区在线看| 久久精品久久综合| 欧美日本在线看| 国产欧美日韩综合| 最新精品在线| 亚洲欧美一区二区三区在线| 久久综合狠狠综合久久综合88| 亚洲精品视频一区| 午夜精品久久| 欧美激情第3页| 国产丝袜一区二区三区| 91久久国产自产拍夜夜嗨| 亚洲影院免费| 欧美激情第4页| 亚洲影视九九影院在线观看| 六月天综合网| 国产精品伦一区| 亚洲国产精品一区二区三区| 欧美一区二区三区在线观看| 你懂的视频一区二区| 正在播放欧美视频| 老司机免费视频一区二区| 国产精品美女在线| 最新国产成人av网站网址麻豆| 久久成人人人人精品欧| 亚洲精品久久嫩草网站秘色| 久久精品五月| 国产美女一区| 国产一区二区按摩在线观看| 中文日韩欧美| 欧美高清不卡| 久久精品国产亚洲高清剧情介绍| 欧美日韩色一区| 亚洲欧洲中文日韩久久av乱码| 久久久成人精品| 亚洲视频第一页| 久久久久国色av免费看影院| 国产日韩欧美91| 午夜性色一区二区三区免费视频| 欧美黄色aaaa| 久久一综合视频| 狠久久av成人天堂| 欧美中文字幕在线| 亚洲网站在线| 国产精品成人av性教育| 亚洲精品偷拍| 亚洲国产一二三| 美女图片一区二区| 极品少妇一区二区| 午夜久久99| 午夜国产精品视频免费体验区| 国产精品成人v| 午夜性色一区二区三区免费视频| 亚洲一区二区av电影| 国产精品videosex极品| 在线视频你懂得一区| 亚洲人成高清| 欧美日韩精品中文字幕|