web-dev-qa-db-fra.com

le redimensionnement et la qualité d'image de PNG

Dans mon application, je dois redimensionner et rendre la qualité des fichiers PNG plus médiocre. 

En taille réelle, les PNG ont une taille de 3100x4400px et utilisent 2,20 Mo d’espace disque. 

Lors de l'exécution de la commande suivante:

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

les images sont redimensionnées à 1400x2000 en utilisant 5,33 Mo d’espace disque.

Ma question est donc la suivante: comment puis-je réduire la taille du fichier? 

15
jorgen
  1. Vous pouvez réduire davantage la qualité de PNG en utilisant la postérisation:

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

    C'est une opération avec pertes qui permet à zlib de mieux se compresser.

  2. Convertir une image en PNG8 en utilisant pngquant

    Il réduit les images à 256 couleurs. La qualité dépend donc du type d’image, mais pngquant donne de très bonnes palettes. Vous serez peut-être surpris de la fréquence à laquelle cela fonctionne.

  3. Utilisez Zopfli-png ou AdvPNG pour mieux compresser les images. 

    Cette opération est sans perte et recommandée pour toutes les images si vous devez épargner des cycles de processeur.

11
Kornel

La page d’aide indique que l’option -quality utilisée avec PNG définit le niveau de compression pour zlib, où (environ) 0 correspond à la compression la plus faible, 100 - au meilleur (75 par défaut). Essayez donc de définir -quality sur 100 ou même de supprimer l’option.

Une autre méthode consiste à spécifier PNG:compression-level=N, PNG:compression-strategy=N et PNG:compression-filter=N pour obtenir des résultats encore meilleurs.

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

4
moropus

Après avoir utilisé imagemagick pour redimensionner, vous pouvez compresser l'image à l'aide de pngquant .

Sur mac (avec homebrew) brew install pngquant puis:

pngquant <filename.png>

Cela créera une nouvelle image filename-fs8.png qui est normalement de taille beaucoup plus petite.

1
spencer.sm