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 Voir Si 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...
Choisir une image et savoir l’optimiser pour son site pro VoirChoisir une image et savoir l’optimiser pour son site professionnel Pour rendre un affichage optimal des images de votre site Internet professionnel, le choix du format doit être impérativement réalisé en fonction de son utilisation. Choisir...
[Webmaster] Afficher une image de grande taille VoirPour la plupart des internautes, afficher une image de grande taille dans une page web est trop lourd. Zoomify est un petit programme Flash qui permet de rendre une image zoomable et navigable, et chargeant l'image par morceau selon le...
Les images ne s'affichent pas sur le site VoirDans une page web, les images sont spécifiées grâce à la balise IMG, avec la notation suivante : Les formats d'images supportés sur le web sont les formats GIF, JPG et PNG. Le format BMP n'est pas supporté par les...
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...