PDFMove
Pourquoi les couleurs se dégradent-elles quand on convertit un PNG en GIF ?
Guide

Pourquoi les couleurs se dégradent-elles quand on convertit un PNG en GIF ?

6 min de lecture

La source du problème tient en un seul nombre

La dégradation des couleurs d'une image que vous convertissez du PNG vers le GIF a une seule cause fondamentale : le format GIF ne peut stocker que 256 couleurs au maximum par image.

Il ne faut pas prendre cette phrase à la légère. Ce n'est ni un réglage de qualité, ni une préférence par défaut, ni un raccourci choisi par le logiciel. La structure d'un fichier GIF contient une table de couleurs pour chaque image et cette table peut compter au maximum 256 entrées. Chaque pixel de votre image doit être affecté à l'une de ces 256 couleurs. Aucun outil, aucun réglage ne peut dépasser cette limite.

Le PNG, lui, a été conçu selon une philosophie exactement inverse. C'est un format sans perte, il peut stocker des millions de couleurs et, par-dessus, conserver une valeur de transparence distincte pour chaque pixel. Autrement dit, passer du PNG au GIF, c'est passer d'un grand récipient à un récipient bien plus étroit. Ce qui ne rentre pas déborde.

Les bandes : quand les transitions douces deviennent des marches

Pensez à une photo de ciel ou à un arrière-plan en dégradé. En PNG, cette transition se compose de centaines, peut-être de milliers de tons intermédiaires, et l'œil la perçoit comme continue.

Lors de la conversion en GIF, le logiciel est contraint de faire ceci : ramener ces milliers de tons à quelques couleurs qui figureront dans la palette. Le résultat, ce sont des marches visibles qui remplacent la transition continue. C'est ce qu'on appelle les bandes. Elles se remarquent particulièrement bien à l'œil dans les zones larges à variation lente — ciel, dégradés d'arrière-plan en aplats, ombres douces.

Les bandes ne sont pas une erreur mais une nécessité mathématique. Si vous ramenez 500 tons différents à 8 couleurs, les écarts intermédiaires disparaissent.

Le tramage : l'effort pour dissimuler les dégâts

Plutôt que de laisser les bandes telles quelles, les logiciels appliquent généralement du tramage. En français, cela revient grosso modo à parsemer des points.

Sa logique est la suivante : s'il n'existe pas de ton intermédiaire entre deux couleurs voisines, on mélange ces deux couleurs sous forme de petits points pour créer à l'œil une illusion de ton intermédiaire. Vu de loin, la transition paraît effectivement plus douce. Vu de près, vous distinguez une texture comme du sable parsemé.

C'est un compromis : vous réduisez les bandes mais vous ajoutez un motif à l'image. Dans les outils qui désactivent le tramage, le résultat est plus propre mais les bandes plus dures. Lequel paraît le meilleur dépend du contenu — sur des graphiques en aplats de couleur, le résultat sans tramage est généralement plus acceptable ; sur du contenu photographique, le résultat avec tramage.

Le tramage a un second coût : il augmente le poids du fichier. Un motif de points irrégulier est une structure difficile à compresser et il abaisse l'efficacité de compression du GIF.

Les bords crénelés : le prix de la transparence binaire

La perte de couleurs n'est que la moitié de l'histoire. L'autre moitié, c'est la transparence.

Le canal alpha du PNG stocke 256 niveaux de transparence différents pour chaque pixel. C'est ainsi que le bord incurvé d'un logo se compose de pixels graduels entre le totalement opaque et le totalement transparent et se fond sans à-coups dans l'arrière-plan. Les ombres douces, les effets de verre, les fondus légers fonctionnent tous grâce à ce canal.

Le GIF, lui, ne prend en charge qu'une transparence binaire. Un pixel est soit totalement transparent, soit totalement opaque. Il n'existe aucune valeur intermédiaire.

Lors de la conversion, les pixels semi-transparents du PNG sont contraints d'être arrondis vers l'un de ces deux extrêmes. Résultat : le bord lisse se crénèle comme des marches d'escalier. Les ombres douces disparaissent totalement ou subsistent sous forme de masse dure. C'est une dégradation particulièrement voyante sur les logos et les icônes.

Certains outils fusionnent les pixels semi-transparents avec une couleur d'arrière-plan donnée. Cela produit un résultat qui paraît correct sur ce fond-là mais laisse un halo autour de l'image dès qu'elle est posée sur un autre fond.

Alors quand faut-il effectuer cette conversion ?

Pour parler clairement : le passage du PNG au GIF est une régression en matière de fidélité chromatique. Les bords alpha doux deviennent des bords binaires crénelés, les couleurs sont réduites à 256. Vous ne devez effectuer cette conversion que pour deux véritables raisons.

La première est l'animation. Le PNG ne peut pas stocker d'animation. Si vous devez réunir une série d'images en un seul fichier animé et que l'environnement cible attend du GIF, cette conversion est obligatoire.

La seconde est la compatibilité. Certains logiciels de forum, clients de messagerie, applications de messagerie instantanée, anciens systèmes de gestion de contenu et plateformes d'entreprise n'acceptent que le GIF ou ne lisent automatiquement que le GIF. Dans ce cas, il ne s'agit pas d'une préférence mais d'une obligation.

Si ces deux raisons sont absentes, laissez le PNG en PNG. Une conversion faite en se disant « le GIF est un format plus répandu » ne fait que faire perdre de la qualité.

Les moyens pratiques de réduire la perte

Simplifiez la source. Convertir un arrière-plan en dégradé en aplat de couleur élimine quasiment toutes les bandes. Supprimez les effets d'ombre et de brillance inutiles.

Réduisez le nombre de couleurs dès le départ. Puisque le résultat descendra de toute façon à 256, garder votre image source peu colorée diminue la quantité de décisions que la conversion doit prendre et le résultat est plus propre.

Utilisez un fond uni plutôt que de la transparence. Si vous savez où l'image sera utilisée, aplatir le PNG avec cette couleur d'arrière-plan puis le convertir en GIF élimine totalement le problème des bords crénelés.

Pensez à la résolution. Sur une image affichée en petit, les bandes et le tramage se remarquent bien moins.

Conservez les PNG sources. Il n'y a pas de retour depuis un GIF. Les couleurs écartées et les bords doux ne reviendront par aucune conversion.

En résumé

La dégradation des couleurs lors du passage du PNG au GIF n'est pas une erreur d'outil mais la conséquence inévitable de la limite de 256 couleurs du format. Les bandes naissent de cette réduction, le motif pointillé de l'effort pour la dissimuler. Les bords crénelés, eux, viennent du fait que le GIF ne prend en charge qu'une transparence binaire. Effectuez cette conversion parce que l'animation l'exige ou parce que votre interlocuteur impose le GIF ; s'il y a une autre raison, rester en PNG donne un meilleur résultat à tous égards.

Questions fréquentes

Que signifie exactement la limite de 256 couleurs ?

Le format GIF stocke une table de couleurs pour chaque image et cette table peut contenir au maximum 256 entrées. Autrement dit, tous les pixels de votre image doivent être affectés à l'une de ces 256 couleurs. Ce n'est pas un réglage par défaut souple du format mais une limite stricte enfouie dans sa structure de fichier, et aucun logiciel ne peut la dépasser. Comme le PNG peut stocker des millions de couleurs, la conversion est presque toujours une opération de réduction.

Qu'est-ce que ce motif pointillé qui ressemble à du sable ?

Cela s'appelle le tramage, c'est-à-dire un semis de points, et ce n'est pas une erreur mais une technique de masquage délibérée. Quand la palette de couleurs est réduite à 256, la transition entre deux tons se transforme en une marche abrupte ; pour la masquer, le logiciel parsème les deux couleurs sous forme de petits points et crée à l'œil une illusion de ton intermédiaire. Vu de loin, la transition paraît plus douce ; vu de près, on distingue une texture sableuse. Désactiver le tramage supprime le motif mais rend cette fois les bandes plus visibles.

Pourquoi les bords transparents du PNG deviennent-ils crénelés en GIF ?

Grâce à son canal alpha, le PNG peut stocker 256 niveaux de transparence différents pour chaque pixel ; c'est pourquoi les bords incurvés d'un logo se fondent doucement dans l'arrière-plan. Le GIF, lui, ne prend en charge qu'une transparence binaire : un pixel est soit totalement transparent, soit totalement opaque, il n'y a pas de valeur intermédiaire. Lors de la conversion, chacun des pixels semi-transparents est arrondi vers l'un de ces deux extrêmes et la transition douce se change en frontière abrupte. Le résultat est un bord crénelé en marches d'escalier.

Existe-t-il un moyen de réduire la perte de couleurs ?

Vous ne pouvez pas l'empêcher totalement mais vous pouvez en atténuer l'effet. Garder votre image source sobre est la méthode la plus efficace ; convertir un arrière-plan en dégradé en aplat de couleur et supprimer les effets d'ombre et de brillance inutiles élimine en grande partie les bandes. Par ailleurs, les outils qui permettent de choisir une palette préservant les couleurs dominantes de votre image donnent de meilleurs résultats. S'il est question de transparence, harmoniser les bords avec la couleur d'arrière-plan sur laquelle vous utiliserez le GIF rend le crénelage invisible.

Essayez dès maintenant avec PNG → GIF Dönüştür.

Essayer PNG → GIF Dönüştür