我现在有两张图片, 一张是半透明(保证是黑色或者白色), 一张是任意图片, 我现在要算出两张图片叠加后(透明图片在上方), 每个像素的RGBA。 应该怎么算? 不用代码示例, 直接告诉我算法即可。谢谢!
我现在有两张图片, 一张是半透明(保证是黑色或者白色), 一张是任意图片, 我现在要算出两张图片叠加后(透明图片在上方), 每个像素的RGBA。 应该怎么算? 不用代码示例, 直接告诉我算法即可。谢谢!
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
1.2k 阅读
943 阅读
815 阅读
785 阅读
640 阅读
Alpha 透明度混合算法,网上收集整理,分成以下三种:
R1,G1,B1,Alpha1 为前景颜色值,R2,G2,B2,Alpha2 为背景颜色值
混合算法目前在常用到的算法是 AlphaBlend。
计算公式如下:假设一幅图象是 A,另一幅透明的图象是 B,那么透过 B 去看 A,看上去的图象 C 就是 B 和 A 的混合图象,设B图象的透明度为alpha(取值为0-1,1为完全透明,0为完全不透明).
Alpha混合公式如下:
R(x)、G(x)、B(x)分别指颜色 x 的 RGB 分量原色值。从上面的公式可以知道,Alpha 其实是一个决定混合透明度的数值。改变这个 alpha 值可以得到一个渐变的效果。
首先,要能取得上层与下层颜色的 RGB 三基色,然后用 r,g,b 为最后取得的颜色值;r1,g1,b1 是上层的颜色值;r2,g2,b2 是下层颜色值。
内容详见:RGBA alpha 透明度混合算法