Я играю с некоторой ручной обработкой изображений, и воссоздаю стандартную смесь «наложения». Я смотрю макросы "Photoshop math" здесь:
http://www.nathanm.com/photoshop-blending-math/
( См. Также здесь для более удобочитаемой версии Overlay)
Оба исходных изображения в достаточно стандартном формате RGBA (8 бит каждый), как и пункт назначения. Когда оба изображения полностью непрозрачны (альфа равен 1,0), результат смешивается правильно, как и ожидалось:
Но если в моем «смешанном» слое (верхнем изображении) есть прозрачность, я немного обескуражен относительно того, как правильно включить этот альфа в уравнение смешивания . Я ожидаю, что он будет работать так, что прозрачные пиксели в слое смешения не влияют на результат, непрозрачные пиксели в слое смешения делают наложение наложения как обычно, а полупрозрачные пиксели слоя смешения имеют некоторый масштабированный эффект на результат.
Может кто-нибудь объяснить мне уравнения смешивания или концепцию, стоящую за этим?
Бонусные баллы , если вы можете помочь мне сделать это так, чтобы полученное изображение имело правильно предварительно умноженную альфа (которая, как мне кажется, применяется только для пикселей, которые не являются непрозрачными в обоих слоях).
Спасибо!
// 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??