您似乎错过了背景(current-PixelColor)的(1-Alpha)乘数

手动将RGBA像素与RGB像素进行alpha混合

共 2 个回答
高赞
时间
活跃
0

0

典型的“过度”混合是通过以下方式完成的:
outputRed = (foregroundRed * foregroundAlpha) + (backgroundRed * (1.0 - foregroundAlpha));
然后重复蓝色和绿色通道。为每个像素执行此操作。
新手导航
- 社区规范
- 提出问题
- 进行投票
- 个人资料
- 优化问题
- 回答问题
0
我正在尝试对RGB图像(背景图像)进行RGBA图像(前景图像)的alpha混合操作。但是,在这样做的同时,我认为我可能执行了错误的alpha混合操作或执行了错误的操作。例如,我的RGB图像的像素为(127、127、127)的灰色。我的RGBA图像像素为(0,0,255)。完成混合操作后,最终的颜色将是(127,0,255)。但是,我认为这更多是一种添加剂的混合,与我正在执行的操作有所不同。
有关如何设置我的值,请看一下
关于我的计算方式,请看一下
对于不具有alpha的像素,我希望该值为(0,0,255),然后对于具有alpha的图像,我希望其混合。在上述操作的最后,它将是(127,127 255)。我应该检查每个像素是否都有alpha,如果是,则进行融合,还是有另一种方法?