Je m'amuse à faire du traitement d'image manuel (en marchant sur les pixels), et je recrée le mélange standard "overlay". Je regarde les macros "Photoshop math" ici :
http://www.nathanm.com/photoshop-blending-math/ ( Voir aussi ici pour une version plus lisible de Overlay)
Les deux images sources sont dans un format RGBA (8 bits chacune) assez standard, tout comme la destination. Lorsque les deux images sont totalement opaques (l'alpha est de 1,0), le résultat est mélangé correctement comme prévu :
Mais si mon calque "blend" (l'image du haut) contient de la transparence, je suis un peu perdue. Comment prendre en compte cet alpha dans l'équation de mélange ? correctement. Je m'attends à ce que le fonctionnement soit tel que les pixels transparents de la couche de fusion n'aient aucun effet sur le résultat, que les pixels opaques de la couche de fusion effectuent le mélange de la superposition normalement, et que les pixels semi-transparents de la couche de fusion aient un certain effet d'échelle sur le résultat.
Quelqu'un peut-il m'expliquer les équations du mélange ou le concept qui sous-tend cette opération ?
Points bonus si vous pouvez m'aider à le faire de telle sorte que l'image résultante ait un alpha correctement prémultiplié (qui n'entre en jeu que pour les pixels qui ne sont pas opaques dans les deux couches, je pense).
Merci !
// 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??