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

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| 久久综合给合| 亚洲视频一区二区| 亚洲国产成人在线播放| 欧美电影美腿模特1979在线看| 男人的天堂亚洲在线| 日韩视频精品在线观看| 亚洲私人黄色宅男| 国产真实乱偷精品视频免| 欧美激情精品| 欧美性片在线观看| 久久亚洲高清| 欧美精品日日鲁夜夜添| 欧美一级网站| 蜜桃伊人久久| 午夜精品久久久| 久久综合99re88久久爱| 亚洲午夜激情在线| 久久久国产精品亚洲一区| 亚洲人成亚洲人成在线观看图片 | 一区二区在线观看视频| 欧美高清在线一区二区| 欧美午夜精品久久久| 久久国产精品免费一区| 欧美v日韩v国产v| 欧美在线3区| 欧美日韩国产不卡在线看| 久久久久久久久久久一区| 欧美日本韩国一区| 久久香蕉精品| 国产精品欧美日韩一区| 亚洲国产精品一区在线观看不卡| 国产精品嫩草影院av蜜臀| 亚洲电影免费在线| 国产一区二区成人| 野花国产精品入口| 亚洲欧洲精品一区二区三区不卡 | 亚洲国产精品成人一区二区 | 国产精品一区二区女厕厕| 欧美福利视频一区| 国产一区二区三区四区老人| 99国内精品久久| 亚洲精品久久久久久久久久久久 | 久久亚洲精品一区二区| 欧美亚洲在线| 国产精品久久久久国产精品日日| 欧美黄色aa电影| 亚洲成在线观看| 欧美在线视频日韩| 久久国产福利| 国产无一区二区| 午夜精彩国产免费不卡不顿大片| 亚洲手机在线| 欧美性片在线观看| 一区二区三区四区国产精品| av成人激情| 欧美日韩精品二区| 亚洲免费av电影| 亚洲视频国产视频| 国产精品av久久久久久麻豆网| 亚洲欧洲在线免费| 一区二区三区久久网| 欧美日韩国产在线播放| 日韩视频三区| 亚洲欧美日韩国产综合精品二区| 欧美性理论片在线观看片免费| 日韩一二三区视频| 亚洲欧美在线x视频| 国产精品国产自产拍高清av| 亚洲在线成人精品| 久久精品欧美日韩精品| 国产综合久久久久久鬼色| 久久激情五月婷婷| 欧美成人精品在线| 日韩网站免费观看| 欧美午夜精品久久久久久孕妇 | 亚洲国产视频一区| 中文无字幕一区二区三区| 欧美日韩国产在线| 亚洲欧美日韩精品综合在线观看| 久久本道综合色狠狠五月| 国内成+人亚洲+欧美+综合在线| 久热精品在线视频| 亚洲精品视频在线观看免费| 午夜在线播放视频欧美| 尤物精品在线| 欧美极品在线视频| 亚洲你懂的在线视频| 牛夜精品久久久久久久99黑人| 亚洲精品一区中文| 国产精品女主播在线观看| 久久嫩草精品久久久精品| 亚洲国产欧美日韩| 午夜精品福利视频| 亚洲国产欧美一区| 欧美性天天影院| 久久欧美中文字幕| 亚洲午夜国产一区99re久久| 免费欧美日韩| 亚洲综合色自拍一区| 亚洲国产精品v| 国产精品系列在线| 欧美精品电影在线| 久久久久久久综合| 亚洲一区二区成人| 亚洲国产欧美一区二区三区久久| 午夜精品婷婷| av成人黄色| 亚洲国产精品一区在线观看不卡| 国产精品观看| 欧美激情一区二区三区蜜桃视频| 午夜亚洲激情| 亚洲一区二区在线免费观看| 91久久精品美女| 免费欧美视频| 久久综合久久久久88| 性欧美长视频| 亚洲视频网在线直播| 亚洲精品婷婷| 91久久夜色精品国产九色| 国产一区三区三区| 国产欧美三级| 国产精品亚洲成人| 欧美日韩在线视频一区| 欧美激情第8页| 欧美成人在线网站| 老妇喷水一区二区三区| 久久久国产精品亚洲一区| 欧美一级午夜免费电影| 亚洲欧美bt| 午夜欧美视频| 欧美亚洲免费| 欧美一级午夜免费电影| 欧美亚洲系列| 久久精品系列| 久久国产免费| 久久免费黄色| 玖玖国产精品视频| 暖暖成人免费视频| 欧美电影电视剧在线观看| 蜜桃久久精品乱码一区二区| 欧美jjzz| 欧美少妇一区二区| 国产精品女人久久久久久| 国产精品美女在线观看| 国产区日韩欧美| 国产尤物精品| 在线观看av不卡| 亚洲精品视频啊美女在线直播| 亚洲乱码精品一二三四区日韩在线 | 欧美日韩国产综合一区二区| 欧美另类视频| 国产精品久久久久永久免费观看| 国产精品毛片va一区二区三区 | 亚洲在线视频观看| 亚洲欧美国产一区二区三区| 亚洲欧美日韩国产综合在线 | 一本大道av伊人久久综合| 亚洲视频在线视频| 性欧美暴力猛交69hd| 久久天天狠狠| 亚洲精品中文字幕在线| 亚洲欧美国产77777| 久久久无码精品亚洲日韩按摩| 久久五月天婷婷| 欧美人与性禽动交情品 | 久久国产夜色精品鲁鲁99| 男人插女人欧美| 国产精品爱啪在线线免费观看| 国产欧美va欧美va香蕉在| 亚洲高清久久| 亚洲欧美日本国产有色| 老色鬼久久亚洲一区二区| 91久久精品日日躁夜夜躁欧美| 亚洲制服av| 欧美成人日韩| 国产一区二区毛片| 亚洲视频在线观看免费| 美女诱惑一区| 在线视频你懂得一区| 久久欧美中文字幕| 欧美亚一区二区| 最新中文字幕一区二区三区| 校园春色国产精品| 亚洲人成7777| 久久久之久亚州精品露出| 欧美午夜一区二区福利视频| 亚洲福利在线看| 久久er精品视频| 中日韩午夜理伦电影免费| 免费亚洲婷婷| 影音先锋日韩精品| 久久精品国产欧美激情| 一本一本大道香蕉久在线精品|