Ich habe eine große Anzahl von PSD-Dateien, die halbtransparente Schichten enthalten. Diese Schichten sind nicht richtig abgeflacht zu werden, unabhängig davon, welche Flags ich über convert oder mogrifyWarum bekomme ich mit ImageMagick einen Halo, wenn ich eine PSD mit Alpha flacher mache?
Die einfachste Form sieht wie folgt aus:
convert -background transparent source.psd -flatten output.png
Hier ist, was das Quellbild wie in Photoshop aussieht. Beachten Sie, dass dies ein Schlagschatten-Schicht ist und keine Schichteffekt:
Hier ist, wie es kommt:
Diese vom photoshop Hintergrund offensichtlich nicht kann, so hier wird es in über einem grauen Hintergrund gelegt:
Quelle:
Ausgang:
EDIT: ich ein bisschen in gegraben, was in den Zahlen geschieht. Für das anfängliche Quellbild ist der Schatten vollständig schwarz und das Alpha wird eingeblendet. Für das Ausgabebild ist das Alpha nicht so hoch, aber es kompensiert, indem es das Bild auf eine holprige Weise ungenau aufhellt. Es ist fast so, als wäre es vormultipliziert, aber es nimmt den Hintergrund als weiß?
Hier ist eine Straße RGB machen ohne Alpha in vervielfacht:
Quelle:
Ausgang:
Mit anderen Worten sind die RBG-Werte nicht überhaupt erhalten werden. Alpha wird gedimmt, aber nicht verzerrt, wie diese Werte sind. Meine Vermutung wäre eine Art Rundungsfehler, der darauf beruht, die Farbe aus dem Alpha zu extrapolieren, als wolle sie die Werte "vorvermischen". Jede Hilfe wird geschätzt.
Welche Version von Imagemagick verwenden Sie? – Bonzo
Ich habe es aktualisiert, um sicherzustellen, dass es kein Problem mit der Version gab. Ich bin auf ImageMagick 6.9.6-4 – David