安全黑客
当前位置:安全黑客文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>像素叠加实现图片的半透明混合</b>[VC/C++编程]

赞助商链接



  本文“<b>像素叠加实现图片的半透明混合</b>[VC/C++编程]”是由安全黑客为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

半透明的混合效果常常在游戏里看到,效果那叫一个好.有天好奇心起,想琢磨一下这种效果是怎么实现的.但是自己没学过数字图象处理和图形学,于是只好凭直觉猜想了.

按照生活经验,将两个胶片叠在一同时会有半透明效果,于是假想:从位图A和B中对应位置各取一点Pa、Pb,辨别求取Pa和Pb的RGB三个份量,并将对应份量求均值后拼装成一个新的颜色,这样就是透明度为一半的混合效果了.按这个思绪试了试,发现运气真好.

实现RGB拼装的函数很简单,此处仅阐明原理,未作优化:

/**//*
 * alpha mix demo
*/
inline COLORREF AlphaPixel(UINT alpha, COLORREF clr1, COLORREF clr2)
{
    double k = (double)alpha / 256.0;
    double reverse_k = 1.0 - k;

    BYTE r = BYTE( GetRValue(clr2) * k + GetRValue(clr1) * reverse_k );
    BYTE g = BYTE( GetGValue(clr2) * k + GetGValue(clr1) * reverse_k );
    BYTE b = BYTE( GetBValue(clr2) * k + GetBValue(clr1) * reverse_k );

    return RGB(r, g, b);
}

细心的读者从上面代码可以发现,随着alpha参数由0-255的改变,混合效果可以实现全透明--不透明的突变.根据上述函数实现的半透明混合效果截图:

像素叠加实现图片的半透明混合

程序源代码(内含demo)下载:http://blog.vckbase.com/Files/HateMath/test_alpha.rar

程序在winXp SP2 + VC6.0下通过.


  以上是“<b>像素叠加实现图片的半透明混合</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看安全黑客为您推荐以下文章:
  • HP智能管理中心FaultDownloadServlet信息泄露漏洞
  • Palo Alto Networks的防火墙到一个新的水平
  • LTE带来了新的安全问题,电信运营商
  • iPhone的Multi-Touch技术的MacBook在10月?
  • McAfee的SmartFilter管理服务器SFAdminSrv.exe JBoss的RMI远程执行代码Vulnerabilty
  • Oracle表格识别CroScPlt.dll ActiveX控件远程代码执行Vulnerabilty
  • Oracle的WebCenter表格识别Sssplt30.ocx ActiveX控件远程代码执行Vulnerabilty的
  • RealNetworks公司的RealPlayer IVR MLTI块长度解析远程代码执行漏洞
  • HP Data Protector的笔记本电脑扩展策略服务器LogBackupLocationStatus远程SQL注入Vulnerabilty
  • HP Data Protector的笔记本扩展策略服务器LogClientInstallation远程SQL注入Vulnerabilty
  • HP Data Protector的笔记本扩展GetPolicies远程SQL注入Vulnerabilty
  • HP Data Protector的笔记本电脑扩展策略服务器RequestCopy远程SQL注入Vulnerabilty
  • 本文地址: 与您的QQ/BBS好友分享!

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    免责条款 - 广告合作 - 下载声明 - 欢迎投稿 - 友情连接 - 网站地图 -
    Copyright © 2012-2013 www.110hack.com. All Rights Reserved .