确定透明度的公式
Posted
技术标签:
【中文标题】确定透明度的公式【英文标题】:Formula to determine transparancy 【发布时间】:2015-02-16 01:29:07 【问题描述】:假设您想在 BMP 图片中放置具有颜色 (R0 G200 B255) 的像素,并且您有以百分比表示的 transp
选项。
考虑到transp
和背景颜色,如何确定新的像素颜色?
我实际上可以找出一个看起来很有希望的公式:
newpixel = newpixel + (bgpixel * transp) / %(transp of 255)
我通过分析 GIMP 中的像素颜色变化来创建它。不确定这是否是正确的公式。我认为它也被四舍五入了。
【问题讨论】:
【参考方案1】:标准公式是pixel = new_pixel * alpha + pixel * (1 - alpha)
,其中alpha是一个介于0和1之间的数字,描述了新的(前景) 像素。
您会注意到,如果新像素是完全透明的 (alpha = 0
),则像素不会改变;如果新像素是完全不透明的 (alpha = 1
),则新像素会替换旧像素。
这个公式必须单独应用于每个像素分量(红色、绿色和蓝色)。
【讨论】:
【参考方案2】:代码需要更改为 24 位像素。
其中第 4 个字节是透明度因子。
实际颜色值不变
【讨论】:
不,不需要第 4 个字节。这不是真正的透明度,而是受旧像素影响的新像素的修改。你也可能是指 32 位*以上是关于确定透明度的公式的主要内容,如果未能解决你的问题,请参考以下文章