Optimiser la taille des images PNG

Dernière mise à jour le 16 novembre 2009 à 12:35 par marlalapocket
Publié par sebsauvage
On peut optimiser de manière importante la taille des fichiers PNG, ce qui est particulièrement intéressant pour les pages web.
La méthode décrite ci-dessous permet de réduire les fichiers PNG en moyenne à 40% de leur taille originale.



Comment ?

  • En réduisant le nombre de couleur dans l'image.
  • En re-compressant l'image.
  • En éliminant les informations inutiles du fichier PNG (commentaires, miniatures...)

Pourquoi ?

  • Moins il y a de couleurs dans une image, mieux elle se compresse en PNG. Bien souvent, les PNG en millions de couleurs peuvent se réduire à 256 sans grande perte de qualité.
  • On peut utiliser différents taux de compression quand on enregistre en PNG. On peut donc re-compresser les PNG avec des paramètres optimaux pour obtenir un fichier plus petit sans la moindre modification visuelle.
  • Un fichier PNG peut contenir de nombreuses informations en plus de l'image elle-même: des commentaires, des profils de couleur, etc. Ces informations sont inutile pour un navigateur. Les éliminer permet d'obtenir des fichiers PNG plus petits.

Avec quoi ?


Il existe deux logiciels très efficaces, gratuits et open-source:
  • pngnq permet de réduire le nombre de couleur d'un fichier PNG. La grande majorité des PNG en millions de couleurs peuvent se réduire en 256 couleurs sans perte de qualité flagrande. On gagne ainsi de la place. pngnq est le logiciel le meilleur dans ce domaine.
  • optipng effectue une recompression des png en essayant différents paramètres de compression afin d'obtenir le fichier le plus petit possible.
  • optipng élimine également les informations inutiles d'un PNG.


L'étape pngnq est recommandée mais optionnelle, car dans certains cas spécifiques, elle peut réduire trop la qualité d'image. Mais dans la vaste majorité des cas, l'algorithme utilisé est tellement efficace que la différence entre millions de couleurs et 256 couleurs est presque imperceptible.

En fait, pngnq est tellement efficace que rares sont les cas où garder du 16 millions de couleurs se justifie.

Ligne de commande


Si vous avez un fichier image.png, tapez en ligne de commande:

pngnq -vf -s1 image.png
optipng -o7 image-nq8.png

En sortie, vous avez l'image optimisée image-nq8.png

Faites le test ! Vous serez surpris du gain de place.

Explications des options:
  • -vf demande à pngnq d'afficher ce qu'il est en train de faire, et d'écraser le fichier s'il existe déjà.
  • -s1 demande à pngnq de faire l'optimisation maximum (par défaut, c'est -s3)
  • -o7 demande à optipng de faire un maximum de tests avec des combinaisons différentes.

Traitement de fichiers par lot


Si vous avez un lot de fichiers png, vous pouvez faire:

pngnq -vf -s1 *.png
optipng -o7 *-nq8.png

Les fichiers optimisés porteront le nom xxxx-nq8.png

Gain moyen


Dans la majorité des cas, on peut espérer réduire un PNG à 40% de sa taille originale.
(Un PNG de 100 ko se réduit donc typiquement à 40 ko.)

Exemples


Logo CCM


Image d'origine: 9,2 ko



Optimisée: 4,4 ko


Pièces


Image d'origine : 21,8 ko



Optimisée: 8,4 ko


Où trouver ces logiciels ?

  • Sous Linux (Debian): sudo apt-get install pngnq optipng
  • Sous Windows:

Et la transparence ? Et la compatibilité ?


pngnq et optipng préservent la transparence des fichiers PNG. Vous pouvez donc compresser tous vos PNG sans étât d'âme.

De plus ces deux logiciels font très attention à générer du format PNG parfaitement valide: Les fichiers PNG ainsi produits sont parfaitement standards et pourront être lus sans problème dans tous les logiciels supportant le format PNG.

Note de sebsauvage


A l'heure actuelle, pngnq+optipng semble donner les meilleurs résultats qu'il soit possible d'obtenir.

Je n'ai pas trouvé un seul autre logiciel qui donne des fichiers aussi compacts. Si vous trouvez des logiciels plus efficaces, n'hésitez pas à m'en faire part !

Note: Dans certains cas, pngout (freeware pour Windows) peut donner de meilleurs résultats qu'optipng. C'est du 50/50: Parfois optipng est meilleur, parfois pngout est meilleur. Cela dépend des images. Si vous avez le temp, vous pouvez faire l'essai avec les deux pour obtenir le plus petit png possible.

La version ligne de commande de pngout est gratuite. La version avec interface graphique (PNGOUTWin) est payante.

Scripts


Les scripts suivants optimisent automatiquement tous les fichiers png du répertoire courant (sans que vous ayez à renommer les xxx-nq8.png en xxx.png à la fin.).
Il n'est pas recommandé de passer plusieurs fois ce script sur un même png, car pngnq dégrade à chaque fois la qualité d'image.

.bat (Windows)


pngnq -vf -s1 *.png
@FOR %%G IN (*.png) DO ( @IF EXIST "%%~nG-nq8.png" (move /Y "%%~nG-nq8.png" "%%G") )
optipng -o7 *.png

bash (Linux)


#!/bin/bash
pngnq -vf -s1 *.png
rename -f 's/-nq8.png$/.png/' *.png
optipng -o7 *.png
Meilleures réponses pour « Optimiser la taille des images PNG » dans :
Diminuer la taille d'une image VoirSi vous trouvez que vos photos sont trop grosses ou trop lourdes (par exemple pour envoyer par mail ou pour publier sur une page web), voici 4 étapes pour diminuer la taille des fichiers: Étape 1 (optionnel !) : Passer GREYCStoration sur...
Optimiser la mémoire virtuelle VoirExplications Cette astuce est bien une optimisation et n'apporte PAS les mêmes résultats que l'augmentation de la mémoire vive... Cependant, la mémoire virtuelle est toujours utilisée, même si l'on dispose d'une grande quantité de mémoire...
Télécharger Free Word/Doc Txt to Image Jpg/Jpeg Bmp Tiff Png VoirD'habitude, ce sont les images que l'on insère dans les documents Word, Excel ou PowerPoint. Cette fois ci, c'est un peu l'inverse, parce qu'on va convertir ces documents au format image. All to Image Jpg/Jpeg Bmp Tiff Png Converter est un outil...
Télécharger Image Resizer VoirPetit utilitaire (PowerToy) basique, très simple, permettant de réduire la taille d'une image, dans le but, notamment, de l'envoyer par e-mail ou de la partager sur Internet (blog, site, album...). Pour plus d'informations: image resizer reduire la...
Gestion des images en HTML VoirComment afficher des images sur une page web? Quelques images sur un site Web peuvent le rendre plus attractif et plus convivial, cependant il est important de ne pas sombrer dans l'excès car les images peuvent impliquer un temps de chargement...
LaTeX - Insertion d'images VoirStyle LaTeX permet d'insérer des images de différents formats. Le plus simple est d'insérer des fichiers de type eps (Encapsuled Postscript) : Il suffit d'insérer dans le préambule la ligne suivante : \usepackage{graphicx} Puis d'insérer...
Le format PNG VoirLe format PNG Le format PNG (Portable Network Graphics, ou format Ping) est un format de fichier graphique bitmap (raster). Il a été mis au point en 1995 afin de fournir une alternative libre au format GIF, format propriétaire dont les droits sont...