确定透明度的公式

Formula to determine transparancy

假设您想在 BMP 图片中放置颜色 (R0 G200 B255) 的像素,并且您有 transp 百分比选项。

考虑到 transp 和背景颜色,如何确定新的像素颜色?


我实际上可以找出一个看起来很有希望的公式:

newpixel = newpixel + (bgpixel * transp) / %(transp of 255)

我通过分析 GIMP 中的像素颜色变化创建了它。不确定这是否是正确的公式。我觉得也是四舍五入。

代码需要更改为 24 位像素。

其中第 4 个字节是透明度因子。

实际颜色值不变

标准公式为pixel = new_pixel * alpha + pixel * (1 - alpha),其中alpha是介于01[之间的数字=22=] 描述新(前景)像素的不透明度。

您会注意到,如果新像素是完全透明的 (alpha = 0),则像素没有变化,如果新像素是完全不透明的 (alpha = 1),则新像素会替换旧像素一.

此公式必须分别应用于每个像素分量(红色、绿色和蓝色)。