Flux rss
Collection CommentCaMarche.net

Optimiser la taille des images PNG

Publié par sebsauvage, dernière mise à jour le mardi 29 avril 2008 à 08:56:20 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 ?


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
Convertir une vidéo en images PNG (Résolu) Bonjour, Je suis à la recherche d'un logiciel (avec interface graphique si possible sous Ubuntu) permettant de convertir une vidéo en images PNG. Par exemple 1 image par seconde. Pour ensuite créé des APNG (animated PNG) avec l'addon de... www.commentcamarche.net/forum/affich-7567803-convertir-une-video-en-images-png
Affichage image .PNG (Résolu) Bonjour, je dispose d'une image .PNG si je l'affiche dans une page html basique (genre ) hébergée sur le bureau, elle s'affiche parfaitement. mais une fois sur le local host pas moyen de l'afficher sachant que... www.commentcamarche.net/forum/affich-9515334-affichage-image-png
Convertir png en jpeg (Résolu) Bonjour, je suis a la recherche d'un logiciel (gratuit et en francais) pour convertir une image png en image jpeg. mon pc windows sp2 surf ie7 merci par avance pour vos reponses www.commentcamarche.net/forum/affich-4144794-convertir-png-en-jpeg
[FreeMind] Publier une mindmap dans une page webFreeMind est un logiciel de mindmapping. Vous avez plusieurs possibilités pour publier votre mindmap dans une page web. Flash applet Java Simple image PNG HTML+Javascript (texte seulement) HTML+Javascript (texte+icônes) HTML+Javascript... www.commentcamarche.net/faq/sujet-4857-freemind-publier-une-mindmap-dans-une-page-web
ImageMagick - Manipuler les images en ligne de commandeImageMagick est un formidable outil en ligne de commande qui permet de manipuler les images. L'avantage de cet outil est qu'il permet: d'automatiser les travaux sur les images (cela évite d'avoir à faire certaines manipulations dans... www.commentcamarche.net/faq/sujet-6120-imagemagick-manipuler-les-images-en-ligne-de-commande
[Image Resizer] Réduire la taille de photosSi vous souhaitez envoyer des photos (ou autres images) par e-mail (ou les partager sur Internet: blog, album, site...), vous aurez besoin de les optimiser afin de réduire leurs poids (i.e. le nombre d'octets qu'elles occupent sur le... www.commentcamarche.net/faq/sujet-6384-image-resizer-reduire-la-taille-de-photos
Modifier la profondeur de couleur d'une image (Résolu)Bonjour, J'aurais voulu savoir comment passer une image png 32 bits en image png 24 bits ? Merci d'avance. Jonathan www.commentcamarche.net/forum/affich-4338894-modifier-la-profondeur-de-couleur-d-une-image
Images sur le disque dur (Résolu)Sl, Puis-je effacer les images PNG, JPEG, BITMAP, WMF, TIF, GIF, EWE de mon disque dur qui ne m'appartiennent pas mais qui prennent pas mal de place ? Merci pour votre aide. www.commentcamarche.net/forum/affich-7028744-images-sur-le-disque-dur
Problème pour inséré une image sur site web (Résolu)Bonsoir, Voila mon problème, c'est que j'apprend le HTML sur le Site du Zér0 : Je veut inséré une image.png exemple, je vais mieux expliquer je veut inséré une image donc je fait sa : ... www.commentcamarche.net/forum/affich-5148818-probleme-pour-insere-une-image-sur-site-web
Télécharger ButterFlyButterfly est la version améliorée de FLY. Utilisant le langage C, il permet de créer des images PNG, JPG, WBMP ou GIF. Il comprend des fonctions avancées pour créer rapidement des images avec la bibliothèque graphique de Thomas Boutell's. Il comprend... www.commentcamarche.net/telecharger/telecharger-34056298-butterfly
Télécharger VSO Image ResizerLe logiciel VSO Image Resizer organise vos photos en réduisant leur résolution et en les déplaçant facilement au sein de votre disque dur. C'est l'outil parfait pour les personnes qui stockent leurs photos numériques et images sur leur PC et veulent... www.commentcamarche.net/telecharger/telecharger-3673501-vso-image-resizer
Télécharger XnviewXNView est un logiciel permettant de visualiser et de convertir les fichiers graphiques. Il support plus de 400 formats graphiques et permet d'exporter vers 50 formats différents ! Il existe des versions compatibles pour LINUX, MAC OSX, FreeBSD,... www.commentcamarche.net/telecharger/telecharger-134-xnview
Optoma HD800XHD 800 800 X 800X 800X, Zoom optique:1.2 X, Distance minimale de projection:1.5 m, Zoom:Manuel, Zoom numérique: , Formats acceptés: , Mode 16/9eme natif, Format:16:9, Résolution maximale: , Résolution native:1920x1080 HDTV, Distance maximal www.commentcamarche.net/guide-achat/optoma-hd800x-1026292-fiche-technique
LaTeX - Insertion d'imagesStyle 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... www.commentcamarche.net/contents/latex/latex-images.php3
Le format PNGLe 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... www.commentcamarche.net/contents/video/format-png.php3