计算透明应用程序背景图像的像素颜色

时间:2016-09-17 03:09:27

标签: vb.net math colors formula pixel

我将VB用于我的应用程序,并使用包含徽标的圆形背景图像。它也有点各向异性,以防止锐利的Logo。因为vb只允许没有任何容差的颜色键,所以我必须将具有Alpha值的像素替换为没有一个像素的像素。简而言之,我必须将屏幕的Pixel与背景图像的Pixel结合起来。但问题是:我不知道获得Pixel结果颜色的公式。

1 个答案:

答案 0 :(得分:1)

这被称为" Alpha Compositing"您可以使用以下等式,由维基百科页面(click here)提供,以从两个透明RGB图像中获取结果RGB值。 (只有一个必须是透明的,所以另一个可以是你的屏幕/背景,100%alpha。)

这些方程式假设您在另一个对象的顶部有一个透明对象,其中R1是对象#1的红色组件,a1是对象#1的alpha,依此类推......等等>

我将在下面展示

R = (R1 * a1 / 255) + (R2 * a2 * (255 - a1) / (255^2))
G = (G1 * a1 / 255) + (G2 * a2 * (255 - a1) / (255^2))
B = (B1 * a1 / 255) + (B2 * a2 * (255 - a1) / (255^2))
Alpha = a1 + (a2 * (255 - a1) / 255)

我还建议浏览维基页面,因为它非常吸引人。