Remark of BLENDFUNCTION from MSDN
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.
1.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)) |
2.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 - Src.Alpha) * Dst.Alpha |
3.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 |
===========================分割线===========================
2.
| Dst.Red | = Src.Red | + (1 - (Src.Alpha/255.0)) * Dst.Red |
| Dst.Green | = Src.Green | + (1 - (Src.Alpha/255.0)) * Dst.Green |
| Dst.Blue | = Src.Blue | + (1 - (Src.Alpha/255.0)) * Dst.Blue |
| Dest.Alpha | = Src.Alpha | + (1 - (Src.Alpha/255.0)) * Dst.Alpha |
3.
| srcAlpha | = Src.Alpha | |
| 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 - (srcApha/255.0)) * Dst.Red |
| Dst.Green | = Src.Green | + (1 - (srcApha/255.0)) * Dst.Green |
| Dst.Blue | = Src.Blue | + (1 - (srcApha/255.0)) * Dst.Blue |
| Dst.Alpha | = Src.Alpha | + (1 - (srcApha/255.0)) * Dst.Alpha |
MSDN 备注有点错误.应该先除以255.0的
Remark of BLENDFUNCTION from MSDN的更多相关文章
- Visual Studio 2010的MSDN帮助文档离线使用
如果没有在安装vs过程中安装帮助,也可通过Visual Studio帮助菜单中的Manage Help Settings来对帮助进行设置或安装. 可以选择从磁盘安装内容,如果选择从磁盘安装可能会要求提 ...
- MSDN文档篇
很多人网上下载3~10G不等的MSDN文档,发现,下载完成了不会用 很多人每次都得在线下载文档,手上万千PC,都重新下载不是得疯了? so==> 先看几张图 推荐一个工具:https://vsh ...
- 使用SHFB(Sandcastle Help File Builder)建立MSDN风格的代码文档
使用SHFB(Sandcastle Help File Builder)建立MSDN风格的代码文档 下载地址:http://sandcastle.codeplex.com/ 下载地址2:http:// ...
- MSDN杂志上Wix相关的文章
使用 MSBuild 和 Windows Installer XML 执行自动发布: http://msdn.microsoft.com/zh-cn/magazine/cc163456.aspx 用于 ...
- 使用 Async 和 Await 的异步编程(C# 和 Visual Basic)[msdn.microsoft.com]
看到Microsoft官方一篇关于异步编程的文章,感觉挺好,不敢独享,分享给大家. 原文地址:https://msdn.microsoft.com/zh-cn/library/hh191443.asp ...
- [已解决]从微软合作伙伴资源和MSDN下载系统和软件Microsoft download Manager无效
有个itellyou,更新了所有MSDN的软件包.如果自己有微软的注册账户,还是从微软官网下载比较好.而且对自己账户里的系统和itellyou里的做了对比.发现SHA1码不相同,估计官方分配的序列号也 ...
- diff/merge configuration in Team Foundation - common Command and Argument values - MSDN Blogs
One of the extensibility points we have in Team Foundation V1 is that you can configure any other di ...
- 源码网站(msdn.itellyou.cn) good
verysource 100万源码http://www.verysource.com/category/delphi-vcl/ MSDN DOWNLOADhttp://msdn.itellyou.cn ...
- MSDN Library for vs 2010安装及使用(MSDN Library)
VS2010正式版不再有单独的MSDN Library安装选项,VS2010的ISO安装光盘里已经包含有MSDN Library,只不过要手动安装,方法如下: 1.安装完VS2010后,在开始菜单中打 ...
随机推荐
- [Javascript] The Array filter method
One very common operation in programming is to iterate through an Array's contents, apply a test fun ...
- 前端JS开发框架-DHTMLX
一:介绍 dhtmlxSuite是一个JavaScript库,提供了一套完整的Ajax -驱动UI组件.我们能够使用dhtmlxSuite构建 简洁界面,快速性能,和丰富用户体验的企业级web应用程序 ...
- CentOS下挂载U盘
插入U盘提示: [sdb] No Caching mode page present [sdb] Assuming drive cache: write through 再用fdisk -l 来查看U ...
- Open quote is expected for attribute "{1}" associated with an element type "name".
xml属性必须用引号“”,不能缺少.
- Flash学习初总结
话说尝试了一周多的Flash编程,有些理解为什么很多程序员都不喜欢用Flash编程了. 首先,就是没有编程的难度,想要编好Flash,也就是有良好的视觉效果,那么关键点不在你的程序逻辑或者代码条理上, ...
- Eclipse错误
1.java compiler level does not match the version of the installed java project facet 解决:http://blog. ...
- 读取properties文件
假设项目名称为myproject public class UtilConfig { private static final Properties prop; static { prop = new ...
- lsjORM ----让开发变得更加快捷(二)
lsjORM结构 跟传统三层没有多大区别,这里添加DTO(参数列表)跟PetaPoce(数据库操作),普通的三层我们都喜欢用DBHelper或者SqlHelper来封装sql的辅助方法,PetaPoc ...
- mysql查询缓存打开、设置、参数查询、性能变量意思
http://blog.sina.com.cn/s/blog_75ad10100101by7j.html http://www.cnblogs.com/zemliu/archive/2013/08/0 ...
- Spring中整合Titles
在<Spriing实战(第三版)>这本书中,有一个使用titles的例子,但是这是一个不完整的例子.那么要参照起来就比较难了,于是找到了下面这篇博客. 在Spring中使用tiles2 ( ...