Réduire la taille d'un PNG sans perte
Le PNG est déjà un format sans perte. « Réduire sans perte » veut donc dire une chose précise — et souvent l'inverse de ce que proposent les outils qui vous font passer en JPG.
Réduire votre PNG, en gardant les pixels
Ce que vos fichiers ont dans le ventre
Lu directement dans vos pixels, sur votre machine, avant de compresser quoi que ce soit. Rien n'est envoyé nulle part.
Résultat
Le fond en damier montre les zones transparentes : elles sont conservées telles quelles. Toujours trop lourd ? Descendez d'un cran de palette, réduisez les dimensions, ou lisez plus bas pourquoi le PNG n'est peut-être pas le bon format.
En résumé : un PNG est déjà sans perte, donc l'alléger « sans perte » ne peut pas venir de la compression classique — elle est déjà à fond. Le vrai gain sans perte vient de trois gestes précis : retirer les métadonnées, supprimer un canal de transparence inutile, et — le plus rentable — ré-indexer une image qui a 256 couleurs ou moins, ce qui ne change pas un seul pixel mais divise le poids par deux ou trois. Au-delà, tout gain se paie en qualité. Cette page fait la part des choses, chiffres à l'appui.
Le PNG est déjà sans perte : ça change tout
Contrairement au JPG, le PNG ne jette jamais d'information. Il compresse ses pixels avec DEFLATE (le même algorithme que le ZIP), un compresseur réversible : ce qui entre ressort à l'identique. Un PNG « bien enregistré » est donc déjà compressé au maximum de ce que DEFLATE sait faire.
Conséquence directe, et contre-intuitive : il n'existe pas de bouton « compresser mon PNG sans perte » qui rapporterait beaucoup. Si votre logiciel a écrit le fichier correctement, la marge sans perte restante se compte en quelques pourcents. Quand un outil vous annonce « -70 % sans perte », il ment sur un des deux mots — soit ce n'est pas 70 %, soit ce n'est pas sans perte.
Ce que « sans perte » recouvre vraiment
Il faut distinguer trois opérations qu'on range à tort dans le même panier :
- L'optimisation lossless au sens strict. On ne touche à aucun pixel : on retire des données annexes (métadonnées) et on recompresse plus finement. Gain réel : faible.
- La ré-indexation d'une image à faible nombre de couleurs. Un logo enregistré en PNG-24 (couleurs « vraies ») mais qui n'utilise en fait que 200 teintes peut être réécrit en PNG-8 à palette. Chaque pixel retrouve exactement sa couleur — c'est sans perte — mais il n'occupe plus qu'un octet au lieu de trois ou quatre. C'est le seul geste sans perte à gros gain, et il ne marche que si l'image tient dans 256 couleurs.
- La quantification avec réduction de couleurs. On force une palette plus petite que le nombre de couleurs réelles. Là, on perd : des teintes sont fusionnées. C'est ce que font TinyPNG et compagnie sous l'étiquette « smart lossy ». Visuellement invisible souvent, mais ce n'est pas du sans perte.
L'outil de cette page lit votre fichier avant tout traitement et vous dit dans quel cas vous êtes : s'il compte 256 couleurs distinctes ou moins, le PNG produit est identique au vôtre pixel pour pixel — sans perte, pour de vrai. Au-delà, il vous prévient que réduire davantage passe par une perte, à vous de trancher.
Ce que chaque technique lossless fait vraiment gagner
Les gains dépendent entièrement de comment le fichier a été enregistré au départ. Voici les ordres de grandeur réalistes, technique par technique.
| Type de PNG | Geste sans perte | Gain réaliste | Pixels modifiés ? |
|---|---|---|---|
| Export avec métadonnées profil ICC, XMP, chunks texte |
Retrait des chunks annexes | 2 à 10 % | Non |
| PNG-32 sans transparence canal alpha entièrement opaque |
Suppression du canal alpha inutile | 10 à 25 % | Non |
| PNG mal compressé export rapide, DEFLATE non optimal |
Recompression optimale (type zopfli) | 5 à 15 % | Non |
| Logo / icône ≤ 256 couleurs écrit à tort en PNG-24 |
Ré-indexation en PNG-8 (palette) | 40 à 70 % | Non — palette exacte |
| Photo enregistrée en PNG milliers de nuances |
Aucun geste sans perte efficace | ~0 % — changer de format | — |
La quatrième ligne est la seule qui offre à la fois « sans perte » et « gros gain », et elle a une condition stricte : l'image doit vraiment tenir dans 256 couleurs. Beaucoup de logos, pictos et captures d'interface sont dans ce cas sans que personne ne le leur ait dit — leur PNG-24 gaspille deux octets par pixel. La dernière ligne est le piège inverse : sur une photo, aucune technique sans perte ne rapporte, parce qu'il n'y a aucune redondance à factoriser. Le seul vrai levier y est un changement de format, donc une perte assumée.
Quand garder le PNG, quand le lâcher
Le PNG n'a que deux atouts réels : la transparence et le rendu net des aplats et bords francs (logos, textes, interfaces). Si votre image a l'un des deux, restez en PNG et ré-indexez. Sinon, elle est en PNG par accident — souvent le réglage par défaut d'un outil de capture.
- Transparence nécessaire ? Oui → PNG, ou WebP qui la gère aussi et pèse moins. Non → continuez.
- C'est une photo ? Oui → convertissez en JPG. Le gain se compte en dizaines, pas en pourcents.
- Logo, capture, illustration à aplats ? Restez en PNG et ré-indexez avec l'outil ci-dessus.
Face à TinyPNG et aux logiciels de bureau
Deux familles d'outils reviennent sur cette requête, et aucune ne fait exactement ce que promet le mot « sans perte ».
TinyPNG, Compressor.io, iLoveIMG et similaires. Leur méthode par défaut est la quantification avec réduction de couleurs : ils diminuent le nombre de teintes pour gagner du poids. C'est efficace et souvent invisible, mais c'est une perte, pas du sans perte — leur propre documentation parle d'ailleurs de « lossy ». Autre point : votre fichier est téléversé sur leurs serveurs, et les offres gratuites plafonnent le nombre et la taille des images. Ici, tout se passe dans votre navigateur, aucun octet ne part, et l'outil vous dit quand la réduction est réellement sans perte.
Les logiciels lossless (OptiPNG, pngcrush, zopflipng). Eux sont honnêtement sans perte au sens strict : ils recompressent sans toucher aux pixels. Mais ils s'installent, s'utilisent souvent en ligne de commande, et leur gain reste celui de la première et troisième ligne du tableau — quelques pourcents à 15 %. Utiles pour un pipeline de développeur ; disproportionnés pour alléger deux ou trois images.
Questions fréquentes
La transparence est-elle conservée ?
Oui. L'outil écrit la transparence dans un chunk tRNS, entrée de palette par entrée de palette. Une réserve honnête : en dessous de 64 couleurs, la palette manque de place pour les demi-transparences des contours antialiasés, et les bords deviennent crénelés. Pour un logo à bords lisses, restez à 128 ou 256 couleurs.
Quelle différence entre PNG-8 et PNG-24 ?
Le PNG-8 est « indexé » : il ne stocke qu'une palette de 256 couleurs maximum, et chaque pixel n'est qu'un numéro dans cette palette (un octet). Le PNG-24 est « couleurs vraies » : chaque pixel garde ses trois composantes rouge/vert/bleu (trois octets), soit 16,7 millions de teintes possibles. Beaucoup de logos sont enregistrés en PNG-24 alors qu'ils n'utilisent que 200 couleurs : les repasser en PNG-8 est sans perte et divise le poids par deux ou trois.
Pourquoi mon PNG ne maigrit presque pas ?
Deux causes. Soit il était déjà bien compressé, et la marge sans perte restante ne dépasse pas quelques pourcents — c'est normal, le PNG est sans perte par nature. Soit c'est une photo ou un grand dégradé : ces images n'ont aucune couleur répétée à factoriser, aucune technique sans perte n'y gagne, et la ré-indexation peut même les alourdir. Dans ce cas, le vrai levier est de changer de format (JPG ou WebP), donc d'accepter une perte.
Est-ce que ré-indexer en palette est vraiment « sans perte » ?
Oui, à une condition stricte : que l'image tienne dans 256 couleurs. Si c'est le cas, chaque pixel retrouve exactement sa couleur d'origine, aucune n'est fusionnée — c'est bijectif, donc sans perte. L'outil compte les couleurs distinctes de votre fichier avant de compresser et vous prévient : à 256 ou moins, le résultat est identique pixel pour pixel ; au-delà, réduire davantage passe par une perte assumée.
Est-ce comme TinyPNG ?
La méthode par défaut de TinyPNG est la quantification avec réduction de couleurs — leur documentation parle de « lossy ». C'est efficace mais ce n'est pas du sans perte au sens strict, et votre fichier est téléversé sur leurs serveurs. Ici, tout reste dans votre navigateur et l'outil distingue explicitement le cas réellement sans perte (≤ 256 couleurs) du cas avec perte.