2016-11-12 8 views
1

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:

enter image description here

Hier ist, wie es kommt:

enter image description here

Diese vom photoshop Hintergrund offensichtlich nicht kann, so hier wird es in über einem grauen Hintergrund gelegt:

Quelle:

enter image description here

Ausgang:

enter image description here

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:

enter image description here

Ausgang:

enter image description here

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.

+0

Welche Version von Imagemagick verwenden Sie? – Bonzo

+0

Ich habe es aktualisiert, um sicherzustellen, dass es kein Problem mit der Version gab. Ich bin auf ImageMagick 6.9.6-4 – David

Antwort

0

Kurze Antwort ist es in V7 der Software (glaube ich) behoben. Ich renne Mac und das Installationsprogramm für V7 funktioniert überhaupt nicht gut und es scheint instabil. Nach dem Ausführen auf einer Ubuntu-VM funktioniert es gut. Ich habe auch mit einem anderen Benutzer bestätigt, dass V6 dieses Problem hat und V7 nicht auf Windows

Verwandte Themen