我正在玩一些手动(步行像素)图像处理,并且我正在重新创建标准的“叠加”混合。我在这里查看“Photoshop 数学”宏:
http://www.nathanm.com/photoshop-blending-math/ _ _ _
两个源图像都采用相当标准的 RGBA(每个 8 位)格式,目标图像也是如此。当两个图像完全不透明(alpha 为 1.0)时,结果将按预期正确混合:
但是,如果我的“混合”图层(顶部图像)具有透明度,那么对于如何将 alpha正确地考虑到混合方程中,我会感到有些困惑。我希望它能够工作,这样混合层中的透明像素对结果没有影响,混合层中的不透明像素正常进行覆盖混合,半透明混合层像素对结果有一些缩放效果。
有人可以向我解释混合方程或这样做背后的概念吗?
如果你能帮我做到这一点,那么得到的图像具有正确的预乘 alpha 值(我认为,这只对两层中不透明的像素起作用。)
谢谢!
// factor in blendLayerA, (1-blendLayerA) somehow?
resultR = ChannelBlend_Overlay(baseLayerR, blendLayerR);
resultG = ChannelBlend_Overlay(baseLayerG, blendLayerG);
resultB = ChannelBlend_Overlay(baseLayerB, blendLayerB);
resultA = 1.0; // also, what should this be??