Ich benutze Linux und habe keinen Zugriff auf eines der schicken Programme von Adobe.
Ich versuche, ein vorhandenes PNG32-Bild mit Alphakanal in PNG8 umzuwandeln. Ich habe die folgenden Methoden ausprobiert:
convert original.png PNG8:new.png
- Verzerrt das Bild schrecklich und behält nur binäres Alpha bei (nicht indiziertes Alpha)- GIMP - Scheitert ebenfalls, liefert aber eine bessere Qualität (guter Farbquantisierer) als ImageMagick.
pngcrush -rem alla -reduce -brute original.png new.png
- Das Bild wurde verkleinert, die Quantisierung wurde jedoch nicht berücksichtigt (Bild hat weniger als 256 Farben), sodass die Ausgabe immer noch PNG32 war.
Was kann ich noch probieren?
Ihre Distribution enthält möglicherweise pngquant . Wenn Sie es mit yum / apt-get nicht finden können, besuchen Sie die Website. Ich denke, das ist Ihre beste Wahl.
Wenn Sie Probleme mit pngquant haben, können Sie es mit pngout versuchen , aber es ist ein langer Weg . Ich habe gehört, dass es einen guten Job macht, den Alpha-Kanal beizubehalten, aber es kann langsam sein. Möglicherweise ist die Langsamkeit der Menschen darauf zurückzuführen, dass die Standardstrategie "Extrem" lautet und der Autor zugibt, dass sie langsam ist.
Es ist ein Windows-Programm, aber es gibt (angeblich) Linux-Ports, aber der Link auf der Seite mit den Pngout-Autoren ist veraltet. Der Linux-Port-Betreuer JonoF unterhält hier jetzt eine Seite .
Ich muss zugeben, dass ich es nie benutzt habe. Viel Glück!
quelle
pngquant
Der Alpha-Kanal bleibt nicht erhalten. Es erzeugt die gleiche Ausgabe wie GIMP.pngout
wird nicht zusammenarbeiten -Unable to compress further: copying original file
Verwenden Sie pngquant , aber stellen Sie sicher, dass Sie eine neuere Version als 1.6 haben. Die neueste Version hat einen sehr guten Quantisierer, der in jedem Fall die libGD von PHP bei weitem übertreffen wird.
Debian Wheezy enthält immer noch eine 13 Jahre alte Version , die eine Ausgabe von geringer Qualität hat. Es gibt ein gutes pngquant-Paket für Debian-Experimental- und die meisten anderen Linux-Distributionen.
Wenn Ihre Distribution nur veraltet ist
pngquant
, verwenden Siepngnq
stattdessen.quelle