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

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>
            久久激情综合网| 欧美激情视频在线播放| 美女999久久久精品视频| 欧美一区二区三区日韩视频| 欧美日韩国产影片| 亚洲精品久久久一区二区三区| 黄色成人av网| 久久成人精品| 久久精品综合网| 国产日韩精品在线观看| 亚洲精品一线二线三线无人区| 久久精品中文| 久久亚洲精品视频| 精品999网站| 免费成人网www| 亚洲精品乱码久久久久久黑人 | 欧美日韩国产999| 亚洲精品韩国| 久久狠狠一本精品综合网| 玖玖综合伊人| 国内成人精品一区| 久久久久久久一区二区| 欧美国产日韩视频| 99精品国产一区二区青青牛奶| 欧美激情性爽国产精品17p| 亚洲九九九在线观看| 亚洲一区二区在线看| 国产免费亚洲高清| 久久欧美肥婆一二区| 亚洲高清不卡| 亚洲尤物影院| 国内久久婷婷综合| 美日韩精品免费| 999亚洲国产精| 久久福利精品| 亚洲黄色小视频| 欧美日韩性生活视频| 亚洲欧美视频| 欧美国内亚洲| 午夜国产精品影院在线观看| 激情综合色丁香一区二区| 欧美成人午夜| 亚洲免费在线视频| 欧美ed2k| 亚洲欧美视频在线观看视频| 亚洲电影免费观看高清完整版在线观看 | 亚洲精品一级| 欧美中文字幕第一页| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲麻豆av| 国产精品久久久久久亚洲调教 | 欧美日韩xxxxx| 欧美一级大片在线观看| 亚洲人体偷拍| 久久久久久尹人网香蕉| 99精品视频免费观看| 国产在线高清精品| 欧美日韩国产专区| 久久一区二区三区四区| 亚洲视频大全| 亚洲国产精品欧美一二99| 欧美一区二区三区精品| 亚洲精品网址在线观看| 国产综合亚洲精品一区二| 欧美视频一区在线观看| 久久亚洲综合色| 亚洲男人第一av网站| 亚洲久久视频| 欧美激情一区二区在线 | 欧美亚洲一区在线| 亚洲三级视频| 国产一区高清视频| 欧美小视频在线观看| 猫咪成人在线观看| 久久精品国产99国产精品澳门| 一区二区久久久久久| 欧美高清在线观看| 国内精品国语自产拍在线观看| 欧美日一区二区三区在线观看国产免| 久久久久国产免费免费| 亚洲综合好骚| 制服丝袜激情欧洲亚洲| 亚洲日韩中文字幕在线播放| 麻豆freexxxx性91精品| 欧美在线资源| 羞羞答答国产精品www一本| 宅男噜噜噜66一区二区66| 亚洲精品视频在线| 亚洲人成在线观看| 亚洲第一中文字幕| 在线播放亚洲| 亚洲第一在线综合网站| 在线观看国产精品淫| 一区免费观看| 在线观看日韩av电影| 在线观看中文字幕亚洲| 亚洲大胆av| 最新日韩在线视频| 91久久线看在观草草青青| 亚洲电影免费观看高清完整版在线观看| 国产主播在线一区| 激情综合五月天| 亚洲大片在线观看| 91久久国产自产拍夜夜嗨| 91久久国产综合久久| 亚洲精品欧洲精品| 一区二区欧美视频| 亚洲一二区在线| 亚洲欧美日本日韩| 久久精品99国产精品日本| 久久国产免费| 免费一区视频| 亚洲日本黄色| 亚洲午夜免费福利视频| 香蕉精品999视频一区二区| 欧美一区二视频| 美女黄毛**国产精品啪啪 | 亚洲高清视频的网址| 欧美福利视频在线| 亚洲精品久久久蜜桃| 亚洲一区二区av电影| 欧美一区二区私人影院日本 | 日韩午夜激情电影| 亚洲午夜免费视频| 久久er99精品| 免费亚洲电影在线| 欧美特黄一级| 国产亚洲精品资源在线26u| 在线看片欧美| 一区二区高清在线| 久久成人免费视频| 牛牛精品成人免费视频| 亚洲精品激情| 欧美亚洲在线视频| 欧美凹凸一区二区三区视频| 欧美日韩一区二区免费在线观看| 国产精品免费区二区三区观看| 国产尤物精品| 99热这里只有精品8| 午夜视频在线观看一区二区| 老妇喷水一区二区三区| 亚洲看片免费| 久久久777| 欧美午夜精品伦理| 在线精品一区| 欧美一区二区视频在线观看| 欧美激情久久久久| 亚洲欧美精品在线| 老牛国产精品一区的观看方式| 欧美午夜电影网| 在线观看视频一区二区欧美日韩 | 亚洲国产裸拍裸体视频在线观看乱了中文| 日韩视频在线观看国产| 久久国产88| 日韩视频一区二区三区| 国产亚洲网站| 亚洲精品视频一区| 欧美一区二区视频97| 欧美日韩国语| 亚洲国产美国国产综合一区二区| 亚洲欧美在线一区| 亚洲欧洲日韩在线| 久久久国产一区二区| 国产精品久久久久aaaa樱花| 亚洲国产成人精品女人久久久 | 狂野欧美性猛交xxxx巴西| 一区二区免费在线观看| 欧美91视频| 精品va天堂亚洲国产| 性欧美videos另类喷潮| 亚洲美女色禁图| 亚洲欧美日韩一区二区三区在线观看| 欧美成人精品激情在线观看| 性感少妇一区| 国产精品久久久久久久久果冻传媒 | 久久字幕精品一区| 国产资源精品在线观看| 欧美亚洲一区二区在线观看| 一本一本a久久| 欧美日韩不卡一区| 最新国产成人在线观看| 欧美va亚洲va国产综合| 久久久久在线观看| 国内精品久久久久影院 日本资源| 午夜精品视频| 亚洲一区二区三区四区中文| 欧美视频二区| 亚洲一区二区不卡免费| a4yy欧美一区二区三区| 欧美日韩久久不卡| 99国产一区二区三精品乱码| 亚洲国产成人在线| 欧美成人性生活| 亚洲美女黄网| 亚洲精品乱码久久久久久日本蜜臀| 欧美国产视频日韩| 久久精品一区二区三区不卡| 国产午夜精品一区二区三区欧美| 午夜亚洲性色视频| 午夜视频在线观看一区|