c语言图像透明度混合,用像素叠加轻松实现图片的半透明混合
用像素叠加轻松实现图片的半透明混合
分类:计算机等级
|
更新时间:2016-07-07|
来源:转载
半透明的混合效果经常在游戏里看到,效果那叫一个好。有天好奇心起,想琢磨一下这种效果是怎么实现的。可是自己没学过数字图像处理和图形学,于是只好凭直觉猜测了。
按照生活经验,将两个胶片叠在一起时会有半透明效果,于是设想:从位图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的变化,混合效果可以实现全透明--不透明的渐变。
c语言图像透明度混合,用像素叠加轻松实现图片的半透明混合相关推荐
- 深圳创凯电子公司多视频底图像素叠加
转帖网站:http://www.ty360.com/2009/2009_8_25491.htm 如果本文侵犯了您的权利,请及时留言.本人道歉并及时删除! 功能概述 CK4PV4系列大屏拼接器是深圳创凯 ...
- 从图像到语言:图像标题生成与描述
从图像到语言:图像标题生成与描述 大家好,我是苏州程序大白,五一假都过去三天了.大家可以学习起来.今天我们讲讲图像到语言.欢迎大家一起讨论.还有请大家多多支持.关注我.谢谢!!! 1.图像简单标题生成 ...
- 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )
文章目录 一.获取图像真实宽高 二.计算解码区域 三.设置解码参数 内存复用 像素格式 四.图像绘制 五.执行效果 六.源码及资源下载 官方文档 API : BitmapRegionDecoder 在 ...
- 【Android 内存优化】Bitmap 图像尺寸缩小 ( 考虑像素密度、针对从不同像素密度资源中解码对应的 Bitmap 对象 | inDensity | inTargetDensity )
文章目录 一.像素密度对解码图片的影响 二.不考虑像素密度会导致图片缩小尺寸不准确 三.DisplayMetrics 源码阅读.研究手机资源获取规则 四.像素密度参数设置取值 ( inDensity ...
- 【自然语言处理】【多模态】BLIP:面向统一视觉语言理解和生成的自举语言图像预训练
BLIP: 面向统一视觉语言理解和生成的自举语言图像预训练 <BLIP: Bootstrapping Language-Image Pre-training for Unified Vision ...
- (CVPR2022) 跨语言图像弱监督语义分割CLIMS
开源仓库:https://github.com/CVI-SZU/CLIMS CLIMS: Cross Language Image Matching for Weakly Supervised Sem ...
- 8月AI论文GitHub十强榜出炉!语言-图像模型连斩Top2
视学算法报道 编辑:LRS [导读]GitHub上榜项目靠谱,拿来就能用! 看完一篇AI论文,要是发现代码没公开,心就得凉半截,瞬间对实验结果都要开始怀疑. 最近有网友收集了八月份发表的106 ...
- R语言ggpattern填充各种色彩、形状、纹理、图片到ggplot2可视化图像:图案填充列表、饼图图案填充、柱状图图案填充
R语言ggpattern填充各种色彩.形状.纹理.图片到ggplot2可视化图像:图案填充列表.饼图图案填充.柱状图图案填充 目录
- R语言ggpattern填充各种色彩、形状、纹理、图片到ggplot2可视化图像中示例
R语言ggpattern填充各种色彩.形状.纹理.图片到ggplot2可视化图像中示例 目录 R语言ggpattern填充各种色彩.形状.纹理.图片到ggplot
最新文章
- How to Convert Array to ArrayList in Java?
- 21、深入浅出MFC学习笔记,Application Framework简介
- Extjs 集合了1713个icon图标的CSS文件
- 5道python基础中while循环练习题
- 在面试中如何展示虚拟机和内存调优技能
- excel中如何将时间戳转换为日期格式
- Orchard CMS前台页面为什么没有Edit链接?
- 网络原理往期考试题+部分详解+最终版
- 被未知进程占用端口的解决办法
- 前端学习(3308):redux项目创建和概况
- php查询记录是否存在,php – 如果记录存在,我可以更新记录,如果不存在,可以在单个查询中更新多行吗?...
- Qt resizeEvent 控件居中设置
- k8s 1.16安装metrics server
- 【Flutter】Dart的数据类型listMap(数组和字典)
- Coin3D三维可视化教程4
- 节约里程算法java实现
- 金蝶K3系统定制国际销售日报表
- 如何阅读一本书——阅读笔记+个人体会【建议写书评或文献综述前读读这本书】
- sis最新地址获取方法_SIS系统在制药行业内的运用—奥格经典案例
- C++PrimerPlus 学习笔记 | 第八章 函数探幽 |3.默认参数 4.函数重载
热门文章
- 操作系统--并发与并行
- Spectral normalization及torch实现
- 【Mysql】记一次生产CPU使用率突然剧增,内存一直飚高不下故障问题排查 (com.mysql.jdbc.MysqlIO.readFully)
- 如何把视频格式转换mp4格式?试试嗨格式视频转换器
- 【MySQL】之排名函数
- python 3d绘图旋转_如何更改Matplotlib 3d旋转(mplot3d)的鼠标交互样式?
- 微信小程序:previewImage实现图片放大预览效果
- H5 div移动效果
- BZOJ 4666 小z的胡话
- 在网上卖药需要什么资质?入驻平台需要什么条件