AlphaBlend是Window自带的GDI函数,在作GUI的时候为了达到更漂亮的效果我们常常用它.

BLENDFUNCTION是AlphaBlend用控制透明效果的重要参数.

定义如下:

typedef struct _BLENDFUNCTION {
  BYTE     BlendOp;
  BYTE     BlendFlags;
  BYTE     SourceConstantAlpha;
  BYTE     AlphaFormat;
}BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;

BlendOp: 这个参数必须也只能为AC_SRC_OVER(0x00),意思就是把源图片覆盖到目标之上.

BlendFlags: 必须为0

SourceConstantAlpha: 简写为SCA,指定源图片的透明度,这个值是会和源图片的Alpha通道值合并计算的.

AlphaFormat: 可以填两种,一种是0x00,一种是AC_SRC_ALPHA(0x01).填0的话,AlphaBlend据说就和BitBlt一样了,我没有试验过~填1的话,源DC必须是32位的DC不然的话,AlphaBlend会返回参数错误.

计算公式(当SCA不是0xFF时):

输出像素(R,G,B,A) = 源像素(R,G,B,A) * SCA / 0xFF + 目标像素(R,G,B,A) * (1.0 - SCA / 0xFF)

当SCA是0xFF时,计算公式

输出像素(R,G,B,A) = 源像素(R,G,B,A) + 目标像素(R,G,B,A) * (1.0 - 源像素(A) / 0xFF)

混合计算公式

输出像素(R,G,B) = 源像素(R,G,B) * SCA / 0xFF + 目标像素(R,G,B) * (1.0 - 源像素(A) / 0xFF * SCA / 0xFF)

AlphaBlend参数BLENDFUNCTION相关推荐

  1. 12.VC(ui)-AlphaBlend参数BLENDFUNCTION

    AlphaBlend是Window自带的GDI函数,在作GUI的时候为了达到更漂亮的效果我们常常用它. BLENDFUNCTION是AlphaBlend用控制透明效果的重要参数. 定义如下: type ...

  2. 关于 AlphaBlend 和 32bpp 的反锯齿图标

    原文地址::http://www.haogongju.net/art/840107 相关网帖 1.DirectDraw版的AlphaBlend----http://www.haogongju.net/ ...

  3. AlphaBlend

    AlphaBlend实现透明效果,只是仅仅能针对某块区域进行alpha操作,透明度可设. TransparentBlt能够针对某种颜色进行透明,只是透明度不可设. AlphaBlend: BLENDF ...

  4. WINCE下的BLENDFUNCTION

    很奇怪, 在WINCE6的模拟器下,如果使用AlphaBlend,则BLENDFUNCTION的AlphaFormat必须设置为零才有效, 而MSDN里的定义是只有AC_SRC_ALPHA. 真矛盾. ...

  5. Windows的位图alpha混合技术

    摘 要:本文介绍了在Windows环境下对位图的图像alpha混合技术,提供了alpha混合函数的实现方法,并对Windows API提供的alpha混合函数的使用进行了介绍. 关键词:Windows ...

  6. 通过更改透明度使图片为透明

    使用AlphaBlend函数 函数功能 该 函数用来显示具有指定透明度的图像. 函数原型 AlphaBlend(HDC hdcDest,int nXOriginDest,int nYOriginDes ...

  7. AlphaBlend參数BLENDFUNCTION

    AlphaBlend是Window自带的GDI函数,在作GUI的时候为了达到更美丽的效果我们经常常使用它. BLENDFUNCTION是AlphaBlend用控制透明效果的重要參数. 定义例如以下: ...

  8. 半透明AlphaBlend

    AlphaBlend 函数功能:该函数用来显示透明或半透明像素的位图. 函数原型: BOOL AlphaBlend( HDC hdcDest, // handle to destination DCi ...

  9. 半透明AlphaBlend 实现界面或某块资源的半透明

    转:http://blog.csdn.net/lsmdiao0812/article/details/3324640?ADUIN=541540095&ADSESSION=1394756487& ...

最新文章

  1. phpstorm 快捷键
  2. 《强化学习周刊》第36期:DDA3C、因果推理干预、逆强化学习
  3. vue2.0 vue-cli项目中路由之间的参数传递
  4. 条件随机场——时间序列(句子单词序列也算),其特征函数必须要考虑前一刻的数据...
  5. SeekBar的使用(一):实现OnSeekBarChangListener
  6. 使用强大的 Mockito 测试框架来测试你的代码
  7. BTC 重现“自由落体”式暴跌,原来是受这几个因素影响?
  8. 物联网学什么编程语言_物联网要学什么
  9. excel数据分析 - 17个计算统计类函数
  10. 计算机搜索栏历史记录,如何打开搜索历史记录
  11. iOS 播放视频的基本步骤
  12. 担忧:房价八大预言,市场来检验。
  13. 字体 跨域访问_21个访问量最大的免费字体网站
  14. 深入理解吴恩达老师深度学习课程(01神经网络和深度学习 第二周)
  15. python 怎么输出实际的根号2_Python怎么输出根式?
  16. 才智杂志才智杂志社才智编辑部2022年第35期目录
  17. 笔记本 android,震惊:这个秘籍可以让笔记本同时拥有(mac/win/Android)系统
  18. 六、PageRank算法与代码实战【CS224W】(Datawhale组队学习)
  19. Python实现摄像头状态巡检
  20. python 字典dict的update语法

热门文章

  1. [区块链]-- EOS.IO技术白皮书
  2. 数学一本通【数论】小三学算术
  3. php图片转位图,图像必须是什么模式才可以转换为位图模式?
  4. Makefile中export的用法
  5. 西南民族大学计算机基础技能应用培训基地,第六届计算机基础技能应用培训基地开班典礼顺利举行...
  6. 闲谈IPv6-Loopback网口上的IPv6地址
  7. ip加速器为什么受游戏玩家欢迎?
  8. (最简单)红米手机3S 3X的usb调试模式在哪里打开的流程
  9. php fastcgi配置_[转帖]将 FastCGI 配置为主机 PHP 应用程序 (IIS 7) | 霸王硬上弓's Blog...
  10. extends 与 implements 的区别 !