Konvertieren von 32-bit-png in 8-bit png mit ImageMagick durch die Erhaltung semi-transparente Pixel
Will ich wandeln 32-bit-png in 8-bit png mit ImageMagick, aber halb transparente Pixel sind verloren. Wie dieses problem zu lösen? Der Befehl, den ich verwende, ist die folgende
convert original.png PNG8:output.png
- Verwandte: stackoverflow.com/questions/1468221/...
- Diese Frage ist nicht doppelt. Dieses Plakat beschwert sich der Verlust von semi-transparenten Pixel nach der Konvertierung von 24 bit auf 8-bit. Er hat schon die (korrekte) syntax für die Umwandlung von 24-bit auf 8-bit -, er fragt sich, warum es sich so verhält, wie Sie es tut (und es gibt eine gute Antwort).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anscheinend, obwohl das PNG-format eigentlich erlaubt alle Farben in einem 8-bit-indizierte Farbe PNG, die ganz oder teilweise transparent, ImageMagick s "PNG8" Formatbezeichner unterstützt nur GIF-Stil 1-bit-Transparenz.
Es ist möglich, produzieren indizierten 8-bit-PNGs mit ImageMagick von nicht Verwendung der
PNG8:
Planer, sondern einfach mit-colors 256
oder-colors 255
* zum reduzieren der Anzahl der Farben im Bild. Leider, zumindest basierend auf meinen tests mit ImageMagick 6.8.9, die resultierenden Bilder haben einige Recht seltsame und ziemlich unnötig hässliche Farbe Quantisierung Artefakte.Glücklicherweise, gibt es ein viel besseres tool für diesen speziellen job: pngquant. Verwendung Konvertierung einer 32-bit-RGBA-PNG in 8-bit-colormapped PNG mit minimaler Qualitätsverlust ist so einfach wie:
Als eine schnelle demonstration, hier ein einfaches Testbild (ein Stern mit einer halbtransparenten schattenwurf) konvertiert 8-bit-PNG mit verschiedenen Methoden:
Von Links nach rechts:
pngquant 256 < input.png > output.png
convert input.png -colors 255 output.png
*convert input.png PNG8:output.png
convert input.png -colors 255 PNG8:output.png
**) In die Kommentare unten, es wird empfohlen, dass
-colors 255
notwendig ist, "reservieren Sie einen Eintrag für die "hintergrund" - Farbe aus." Basierend auf meinen Tests, habe ich nicht beobachtet dies tatsächlich der Fall sein; mit-colors 256
noch produzieren ein 8-bit-colormapped PNG, mit Quantisierung Artefakte qualitativ ähnlich, aber mit unterschiedlichen details aus, die Ausgabe mit-colors 255
. Dennoch, nur um sicher zu gehen, ich habe-colors 255
für die Beispiele oben. Die Reduzierung der Farbpalette Größe von einer Farbe sollte nicht, in der sich erhebliche Auswirkungen auf die Qualität der Ergebnisse, wie ein test mitpngquant 255
wird Ausgabe.png">demonstrieren.PNG8:
Präfix, bricht die alpha-Transparenz.)-colors 255
statt-colors 256
. ImageMagick muss reservieren Sie einen Eintrag für die "hintergrund" - Farbe.-colors 256
Werke; das ist, wenn mindestens ein pixel in der Hintergrundfarbe vorhanden ist, in der Haupt Bild, und es ist daher nicht notwendig, reservieren Sie einen extra-slot in der palette.convert -colors 255
sieht besser aus mit oder ohnePNG8:
naja, anschauen kann man sich die Beispiele vor und für sich selbst entscheiden. Zu mir, Sie sehen beide ziemlich schlecht.