Ich spiele mit manueller Bildbearbeitung (walk-the-pixels) und erstelle die Standard-Overlay-Mischung. Ich freue mich auf die "Photoshop math" Makros hier:Wie behandelt man Alpha in einem manuellen Overlay-Mischvorgang?
http://www.nathanm.com/photoshop-blending-math/ (See also here für besser lesbare Version Overlay)
Beide Quellbilder sind in ziemlich Standard RGBA (je 8 Bit) Format, wie das ist Ziel. Wenn beide Bilder vollständig undurchsichtig sind (Alpha ist 1.0), wird das Ergebnis korrekt wie erwartet gemischt:
Aber wenn meine "Blend" -Layer (das obere Bild) Transparenz darin hat, bin ich ein wenig flummoxed wie wie man dieses Alpha korrekt in die Mischgleichung einrechnet. Ich erwarte, dass es so funktioniert, dass transparente Pixel in der Blend-Ebene keine Auswirkungen auf das Ergebnis haben, opake Pixel in der Blend-Ebene die Overlay-Blend wie normal und halbtransparente Blend-Layer-Pixel eine skalierte Wirkung auf das Ergebnis haben.
Kann mir jemand die Mischungsgleichungen oder das Konzept dahinter erklären?
Bonuspunkte, wenn Sie mir so helfen können, dass das resultierende Bild hat richtig premultiplied alpha (die nur für Pixel ins Spiel kommt, die in beiden Schichten nicht undurchsichtig sind, glaube ich.)
Dank!
// 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??
OK, was ist der Grund dafür? Vielen Dank. –
@quixoto Nun, ich möchte die beiden multiplizieren, um sie beide in der Gleichung zu haben, ohne die Transparenz zu früh zu erreichen, wenn transparente Schichten kombiniert werden (was passieren würde, wenn sie hinzugefügt werden). Aber wenn man einfach multipliziert, wird es nahe Null gesetzt, einer von ihnen ist nahe Null. Damit invertiere ich das Ganze und es fühlt sich für Testwerte "ok" an (wie 0, 0,5, 1) – Timbo