it-swarm.com.de

imagemagick Größenänderung und Qualität PNG

In meiner Anwendung muss ich die Größe von PNG-Dateien ändern und deren Qualität verschlechtern. 

Die PNGs sind in voller Größe 3100x4400px und verwenden 2,20 MB Festplattenspeicher. 

Wenn Sie den folgenden Befehl ausführen:

convert -resize 1400 -quality 10 input.png output.png

die Größe der Bilder wird auf 1400x2000 unter Verwendung von 5,33 MB Plattenspeicherplatz geändert.

Meine Frage ist also: Wie kann ich die Dateigröße reduzieren? 

15
jorgen
  1. Sie können die Qualität von PNG durch die Posterisierung weiter reduzieren:

    https://github.com/pornel/mediancut-posterizer ( Mac GUI )

    Dies ist eine verlustbehaftete Operation, mit der zlib besser komprimiert werden kann.

  2. Konvertieren Sie das Bild mit pngquant in PNG8. 

    Die Bilder werden auf 256 Farben reduziert. Die Qualität hängt also von der Art des Bildes ab. Mit pngquant werden jedoch sehr gute Paletten erstellt. Sie werden daher möglicherweise überrascht sein, wie oft dies funktioniert.

  3. Verwenden Sie Zopfli-png oder AdvPNG , um Bilder besser zu komprimieren. 

    Dies ist verlustfrei und wird für alle Bilder empfohlen, wenn Sie CPU-Zyklen zur Verfügung haben.

11
Kornel

Die Hilfeseite besagt, dass die mit PNG verwendete -quality-Option die Komprimierungsstufe für zlib festlegt, wobei (ungefähr) 0 die schlechteste Komprimierung ist, 100 die beste Komprimierung (die Standardeinstellung ist 75). Versuchen Sie also, -quality auf 100 zu setzen oder sogar die Option zu entfernen.

Eine andere Methode ist, PNG:compression-level=N, PNG:compression-strategy=N und PNG:compression-filter=N anzugeben, um noch bessere Ergebnisse zu erzielen.

http://www.imagemagick.org/script/command-line-options.php#quality

4
moropus

Nachdem Sie imagemagick zum Ändern der Größe verwendet haben, können Sie das Bild mit pngquant komprimieren.

Auf Mac (mit Homebrew) brew install pngquant dann:

pngquant <filename.png>

Dadurch wird ein neues Bild filename-fs8.png erstellt, das normalerweise viel kleiner ist.

1
spencer.sm