Blog · Guides

Un flux PNG sensé : oxipng, zopfli et palettes

PNG est loin d'être obsolète — bien utilisé, c'est le meilleur format pour les graphiques plats. Voici comment obtenir les fichiers les plus petits sans banding ni artefacts de dithering.

palette → oxipng → zopfli

PNG a mauvaise réputation pour être « lourd », mais la plupart des PNG boursouflés sont simplement mal encodés. Avec un flux de travail clair en trois étapes — quantifier, optimiser, recompresser — vous pouvez couramment réduire un PNG de moitié ou plus, sans perte, tout en gardant des bords nets et des couleurs propres. Voici l'ordre qui compte.

Quand PNG est le bon outil

PNG est conçu pour les graphiques plats aux bords nets : logos, icônes, exports d'interface, diagrammes, captures d'écran et tout ce qui contient de la transparence. Il est sans perte, donc les bords restent parfaitement nets — aucun bruit de moustique façon JPEG autour du texte. Pour les photographies, c'est le mauvais choix (utilisez WebP/AVIF/JPEG), mais pour les graphiques synthétiques qui remplissent les applications modernes, rien ne bat un PNG bien fait.

Étape 1 : quantifiez vers une palette quand vous le pouvez

La plupart des graphiques d'interface utilisent bien moins de 16 millions de couleurs. Convertir un PNG truecolor 24 bits en palette indexée 8 bits (≤256 couleurs) est le plus gros levier à lui seul — cela réduit souvent le fichier de moitié avant toute autre optimisation. Le piège est de bien choisir les couleurs et de traiter les dégradés avec soin ; un bon quantificateur choisit une palette optimale et n'applique du dithering que là où cela aide vraiment.

Étape 2 : optimisez les filtres avec oxipng

PNG applique un filtre par ligne avant la compression, et ce choix affecte considérablement la taille. oxipng teste des stratégies de filtres et recompresse l'image, rapidement et en parallèle, sans aucune perte de qualité. C'est le choix par défaut sûr et quotidien : pointez-le vers un dossier et il rend simplement chaque PNG plus petit. Exécutez-le aussi bien sur les images truecolor que sur celles en palette.

Étape 3 : compressez DEFLATE davantage avec zopfli

Quand vous voulez l'absolu minimum et que l'attente ne vous dérange pas, zopfli est un compresseur compatible DEFLATE qui cherche bien plus intensément un flux plus petit. Il est lent — parfois plusieurs secondes par image — mais il produit des PNG standard que tout décodeur peut lire, souvent quelques pourcents plus petits qu'avec oxipng seul. Parfait pour les ressources que vous publiez une fois et servez des millions de fois.

# Le pipeline complet, sans perte de bout en bout
imageforge ui.png --palette auto --lossless        # étape 1
imageforge ./icons/*.png --optimize oxipng         # étape 2
imageforge logo.png --optimize zopfli --effort max # étape 3

Éviter le banding et les artefacts de dithering

Les deux modes d'échec des PNG en palette sont le banding (marches visibles dans un dégradé quand il n'y a pas assez de couleurs) et le bruit de dithering (grain provenant de la dispersion des couleurs pour en simuler davantage). La solution, c'est le jugement : gardez les dégradés en truecolor, quantifiez les zones plates, et n'appliquez du dithering qu'avec de petites palettes où l'œil préfère le bruit aux bandes. En cas de doute, comparez la version quantifiée à l'original avant de la publier.

Étape
Outil
Perte
Quantifier
Palette / style pngquant
Facultative, contrôlée
Optimiser les filtres
oxipng
Aucune
Recompresser
zopfli
Aucune

Réduisez vos PNG de moitié, de la bonne manière.

Palette, oxipng et zopfli en une seule passe — sans perte par défaut, sur votre Mac.

Continuer la lecture