上一篇中了解了混合模式“正片叠底”的原理和实现方式。
应用中遇到一个问题,如果颜色包含alpha通道,且alpha值小于1,如何实现混合。
https://en.wikipedia.org/wiki/Alpha_compositing
使用flash软件进行测试,经过分析,可以这样实现:先将RGBA图像转为RGB图像,然后就可以按原来的方式混合了。
以下来源于:RGBA 转 RGB 。
将 R,-G-B-A数据归一化, 记为:Source.R, Source.G, Source.B, Source.A ;
提供一个背景色,但同时也应归一化;比如白色背景BGcolur = 1;或者黑色背景 BGcolur =0;
目标数据RGB:
Target.R = BGcolur *(1-Source.A ) + Source.R*Source.A ;
Target.G = BGcolur *(1-Source.A ) + Source.G*Source.A ;
Target.B = BGcolur *(1-Source.A ) + Source.B*Source.A ;最后将Target.R,Target.G,Target.B再乘以255。
3.最后将Target.R,Target.G,Target.B再乘以255
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。