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

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.¢% 閱讀(932) 評論(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>
            国产精品高清一区二区三区| 亚洲在线视频网站| 一区二区三区精品国产| 在线精品在线| 欧美专区日韩专区| 先锋亚洲精品| 欧美日韩一区二区在线观看视频| 久久视频这里只有精品| 亚洲精品国精品久久99热| 欧美午夜女人视频在线| 欧美黑人在线观看| 禁断一区二区三区在线| 小嫩嫩精品导航| 午夜在线视频观看日韩17c| 欧美视频中文在线看| 亚洲国产精品一区二区三区| 亚洲高清在线播放| 久久久久国产精品麻豆ai换脸| 久久国产精品99久久久久久老狼| 国产精品国内视频| 这里是久久伊人| 午夜国产精品影院在线观看| 欧美视频久久| 亚洲天堂av在线免费| 亚洲曰本av电影| 欧美香蕉大胸在线视频观看| 一区二区三区国产精品| 亚洲欧美日韩视频二区| 国产精品午夜久久| 亚洲欧美成人综合| 久久精品首页| 狠狠久久亚洲欧美专区| 久久手机免费观看| 亚洲国产精品一区二区第四页av| 亚洲肉体裸体xxxx137| 欧美成人有码| 在线视频精品一| 欧美一区二区三区播放老司机| 国产精品视频yy9099| 欧美在线播放视频| 美女国内精品自产拍在线播放| 在线观看三级视频欧美| 欧美a级片一区| 一区二区三区日韩在线观看| 欧美一级在线播放| 一区二区亚洲精品| 欧美精品 日韩| 亚洲一区免费网站| 美女日韩欧美| 一区二区精品在线| 国产麻豆一精品一av一免费| 久久久人人人| 一本色道久久综合狠狠躁篇的优点 | 美女在线一区二区| 99精品热6080yy久久| 久久国产视频网站| 亚洲精品老司机| 国产精品久久久一本精品| 久久精品国产清高在天天线| 亚洲欧洲三级| 欧美在线视频观看| 亚洲精品一区二区三区在线观看 | 国产亚洲欧美aaaa| 久久一区免费| 亚洲校园激情| 欧美激情视频在线免费观看 欧美视频免费一 | 久久久天天操| 亚洲视频在线观看一区| 极品尤物一区二区三区| 欧美日韩一区二区在线观看视频 | 国内视频精品| 欧美日韩在线一区二区三区| 久久九九精品99国产精品| 亚洲精品久久久久久久久| 久久久www成人免费无遮挡大片 | 亚洲日韩成人| 久久一二三区| 午夜伦欧美伦电影理论片| 亚洲精品免费观看| 国内成+人亚洲| 国产精品第2页| 欧美国产高清| 久久久人成影片一区二区三区观看| 日韩午夜精品视频| 欧美激情精品久久久久| 久久久综合网| 午夜精品三级视频福利| 一区二区三区国产在线| 亚洲激情视频网| 在线精品国精品国产尤物884a| 国产精品乱看| 欧美午夜免费电影| 欧美日韩亚洲一区二区| 欧美精品v国产精品v日韩精品| 久久久人成影片一区二区三区| 欧美一区二区三区在线| 亚洲欧美国产日韩天堂区| 亚洲素人一区二区| 99精品视频免费观看| 亚洲日本va午夜在线影院| 亚洲第一黄色| 亚洲第一狼人社区| 欧美国产在线视频| 欧美国产在线电影| 欧美国产一区视频在线观看| 欧美黄污视频| 亚洲成人自拍视频| 亚洲视频一区| 亚洲一区二区欧美| 亚洲综合色丁香婷婷六月图片| 亚洲一区二区日本| 亚洲一区亚洲| 小处雏高清一区二区三区| 亚洲一级二级| 香蕉精品999视频一区二区 | 亚洲专区在线视频| 亚洲专区一区二区三区| 午夜精品av| 欧美亚洲免费在线| 久久精品九九| 美女图片一区二区| 亚洲国产小视频| 亚洲美女电影在线| 亚洲午夜一区二区三区| 亚洲欧美精品一区| 久久精品亚洲一区二区三区浴池 | 久久精品视频导航| 美女视频黄免费的久久| 欧美日韩成人精品| 国产精品免费网站| 韩国精品主播一区二区在线观看| 国产主播在线一区| 最新中文字幕一区二区三区| av不卡在线观看| 欧美一级二区| 欧美3dxxxxhd| 一本大道久久a久久精品综合| 亚洲性夜色噜噜噜7777| 久久国产夜色精品鲁鲁99| 欧美成人在线影院| 国产欧美69| 最近中文字幕mv在线一区二区三区四区 | 国产精品久久影院| 激情小说另类小说亚洲欧美| 亚洲人成人一区二区三区| 亚洲午夜一区二区| 看欧美日韩国产| 99re66热这里只有精品3直播| 欧美怡红院视频| 欧美精品免费视频| 国产一区日韩二区欧美三区| 99精品视频一区二区三区| 久久精品日韩欧美| 亚洲毛片av在线| 久久久久国产精品麻豆ai换脸| 欧美三级日本三级少妇99| 一区二区视频欧美| 欧美呦呦网站| 日韩午夜激情av| 美日韩在线观看| 国产一区二区高清不卡| 亚洲天堂成人在线观看| 欧美gay视频| 欧美一级片在线播放| 欧美日本高清视频| 亚洲国产经典视频| 久久一区二区视频| 亚洲欧美日韩精品久久久| 欧美日韩成人综合天天影院| 在线观看一区二区精品视频| 欧美一区二区三区在线观看视频| 日韩午夜在线播放| 欧美jjzz| 91久久精品日日躁夜夜躁国产| 欧美一区免费视频| 亚洲免费视频网站| 欧美性做爰毛片| 一区二区三区久久| 亚洲日本欧美天堂| 欧美激情四色| 亚洲国产欧美不卡在线观看| 久久―日本道色综合久久| 亚洲欧美中文字幕| 国产精品一区二区久激情瑜伽| 亚洲午夜高清视频| 日韩一区二区精品| 欧美日韩一级视频| 亚洲一区免费网站| 在线亚洲激情| 国产精品国产亚洲精品看不卡15| 一区二区三区精品视频在线观看 | 欧美一区二区三区四区在线观看| 国产精品美女在线| 亚洲欧美日韩综合国产aⅴ| 亚洲无线一线二线三线区别av| 欧美性猛交99久久久久99按摩| 亚洲午夜精品17c| 亚洲视频1区2区| 国产精品视频免费| 久久精品综合一区|