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?
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.
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.
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.
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
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.