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

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>
            国产自产精品| 国产精品久久久亚洲一区| 极品日韩av| 美乳少妇欧美精品| 久久露脸国产精品| 亚洲精品久久在线| 亚洲精品在线看| 国产精品国产三级国产aⅴ无密码| 一本色道久久综合亚洲精品不卡 | 国产欧美日韩在线视频| 欧美专区日韩专区| 久久一日本道色综合久久| 亚洲人午夜精品| 99国产精品久久久久久久| 国产精品最新自拍| 欧美不卡高清| 欧美日韩中文字幕| 久久久久久97三级| 欧美伦理一区二区| 性欧美大战久久久久久久免费观看| 香蕉久久夜色精品| 亚洲美女色禁图| 午夜伦欧美伦电影理论片| 亚洲国产高清一区| 亚洲一区二区在线免费观看视频| 国产一区二区视频在线观看| 亚洲国产精品嫩草影院| 欧美香蕉大胸在线视频观看| 久久亚洲捆绑美女| 欧美日韩精品一区视频| 久久综合狠狠| 欧美网站在线| 亚洲国产精品t66y| 国产亚洲aⅴaaaaaa毛片| 91久久亚洲| 一区在线影院| 亚洲午夜精品国产| 日韩视频一区二区三区在线播放| 亚洲欧美日韩一区二区三区在线| 亚洲精品在线观| 欧美专区中文字幕| 午夜欧美不卡精品aaaaa| 欧美黄色免费| 牛夜精品久久久久久久99黑人 | 久久精品亚洲乱码伦伦中文 | 国产欧美一区二区三区另类精品| 欧美激情免费观看| 国模私拍一区二区三区| 亚洲视频自拍偷拍| 野花国产精品入口| 美日韩精品视频免费看| 开元免费观看欧美电视剧网站| 国产精品成人一区| 99re这里只有精品6| 最新日韩精品| 久久影视三级福利片| 久久男女视频| 国语自产精品视频在线看一大j8| 亚洲影院在线| 性欧美暴力猛交69hd| 国产精品日韩欧美一区二区| 一区二区冒白浆视频| 宅男精品视频| 国产精品九色蝌蚪自拍| 正在播放亚洲一区| 亚洲一区在线视频| 国产精品日本一区二区| 亚洲一级黄色片| 欧美一二三视频| 国产日韩精品久久| 久久精品女人天堂| 免费在线观看精品| 亚洲精品国精品久久99热| 欧美国产精品v| 亚洲伦理在线| 午夜激情亚洲| 国产一区二区黄| 久久综合五月| 亚洲精品资源| 午夜一区在线| 在线播放日韩专区| 欧美极品aⅴ影院| 一区二区三区国产| 欧美在线中文字幕| 亚洲第一搞黄网站| 欧美剧在线免费观看网站| 99国产成+人+综合+亚洲欧美| 欧美大片免费观看在线观看网站推荐| 美女图片一区二区| 亚洲精品国产品国语在线app| 模特精品裸拍一区| 日韩亚洲欧美中文三级| 午夜久久久久| 在线观看欧美| 国产精品s色| 久久精品一区二区| 亚洲精品综合精品自拍| 羞羞色国产精品| 亚洲国产精品va| 国产精品久久二区二区| 久久精品二区| 夜夜爽www精品| 老司机久久99久久精品播放免费| 亚洲精品免费在线播放| 国产欧美日韩视频在线观看 | 亚洲精选久久| 久久久久久久一区| 99视频精品免费观看| 国产日本欧美一区二区三区| 男女精品网站| 午夜精品久久久久久久久久久| 欧美国产日韩在线观看| 欧美一级午夜免费电影| 91久久精品国产91性色tv| 国产目拍亚洲精品99久久精品| 免费成人在线视频网站| 午夜精品久久久久久久久久久久| 亚洲国产合集| 老色鬼精品视频在线观看播放| 中文在线资源观看视频网站免费不卡| 国产一区二区三区久久| 欧美色欧美亚洲高清在线视频| 久久久久久网| 午夜精品一区二区在线观看| 日韩一级黄色大片| 欧美激情精品久久久| 久久精品成人| 性色一区二区三区| 亚洲私人影院在线观看| 亚洲精品一区中文| 亚洲黑丝在线| 在线看视频不卡| 国产一区高清视频| 国产嫩草影院久久久久| 国产精品久久久久久一区二区三区| 欧美国产精品人人做人人爱| 麻豆精品视频| 久久午夜激情| 六月婷婷一区| 欧美aⅴ99久久黑人专区| 久久亚洲综合色| 久热综合在线亚洲精品| 久久嫩草精品久久久久| 欧美在线观看视频一区二区| 欧美一区=区| 欧美在线短视频| 久久九九免费视频| 久久天堂国产精品| 老鸭窝91久久精品色噜噜导演| 久久久久国产精品www| 久久久欧美精品| 欧美 亚欧 日韩视频在线| 你懂的网址国产 欧美| 欧美精品91| 欧美性开放视频| 国产日韩在线视频| 狠狠爱www人成狠狠爱综合网| 国内外成人免费视频| 亚洲国产高清在线| 一区二区久久久久| 香港久久久电影| 久久青草欧美一区二区三区| 牛夜精品久久久久久久99黑人 | 久久久国产精品一区二区三区| 久久精品30| 欧美成人免费播放| 日韩午夜激情av| 午夜日韩福利| 免费观看成人| 国产精品久久久久99| 国产一区二区精品久久| 亚洲欧洲日韩在线| 亚洲欧美精品在线| 狼狼综合久久久久综合网| 亚洲黄色成人| 午夜视频在线观看一区二区| 快播亚洲色图| 久久久噜噜噜久噜久久| 性久久久久久久| 欧美中文在线字幕| 狼狼综合久久久久综合网| 欧美日韩亚洲三区| 国内精品久久久| 99热这里只有精品8| 欧美亚洲在线| 亚洲欧洲综合| 久久xxxx精品视频| 欧美日韩亚洲不卡| 永久域名在线精品| 亚洲欧美韩国| 亚洲娇小video精品| 欧美在线免费一级片| 国产亚洲免费的视频看| 亚洲国产欧美在线| 欧美在线观看一区二区| 亚洲国产婷婷| 久久久久久亚洲精品中文字幕| 欧美特黄一级| 99精品视频免费在线观看| 久热爱精品视频线路一|