Le PNG (Portable Network Graphics) est un format d'images numériques libre de droit, qui a été créé pour remplacer le format propriétaire GIF, dont la compression était soumise à un brevet. Le PNG est un format non destructeur spécialement adapté pour publier des images simples comprenant des aplats de couleurs.
Il a été normalisé par l'ISO (ISO/CEI 15948:2004).
PNG est particulièrement approprié lorsqu'il s'agit d'enregistrer des images synthétiques destinées au Web comme des graphiques, des icônes, des images représentant du texte (bonne conservation de la lisibilité), ou des images avec peu de dégradés. Le PNG surpasse régulièrement le format GIF tant en ce qui concerne la taille (avec une palette de couleurs bien choisie) que la qualité puisqu'il n'est pas limité à 256 couleurs.
Les caractéristiques de PNG lui permettent certes d'enregistrer des photographies sans perte de données, mais la taille du fichier résultant reste très supérieure à celle de formats spécifiques aux photographies comme JPEG ou JPEG2000. Il n'est donc pas destiné à cet usage.
PNG permet principalement d'enregistrer les images bitmap sous quatre formes différentes :
Après l'application d'un filtre prédictif qui permet généralement d'obtenir de plus hauts niveaux de compression, le tout est compressé sans pertes suivant l'algorithme deflate (RFC 1951), généralement avec gzip.
Les composantes des pixels ou les entrées de palette sont données soit au format RVB (rouge, vert, bleu), soit au format RVBA (avec un canal alpha supplémentaire pour la translucidité). Dans ce cas, 8 ou 16 bits supplémentaires sont utilisés par pixel ou par entrée de palette, ce qui fait 16 bits pour une image en niveaux de gris, 32 bits pour une image en couleurs vraies et 64 bits pour une image en 4 canaux de 16 bits chacuns.
La présence d'un canal alpha définissant différents niveaux de transparence le rend idéal pour la composition sur les pages Web. Cette caractéristique est bien implémentée par la majorité des navigateurs Web actuels (2004) à l'exception d'Internet Explorer 6 et inférieurs. Il existe cependant des astuces pour les webmestres désirant contourner cette limitation, comme les scripts PNG Behaviour [1] ou IE7 [2]. Internet Explorer 7 devrait gérer complètement le canal alpha.
Lorsque l'image PNG utilise une palette de 256 couleurs maximum, il n'est alors possible d'utiliser qu'un seul niveau de transparence (totalement transparent ou totalement opaque).
C'est le même comportement qu'avec le format GIF et cela fonctionne même avec Internet Explorer 6. Par conséquent, les images Web au format GIF peuvent être converties en cette version de PNG sans crainte d'incompatibilité avec la majorité des navigateurs Web actuels (premier trimestre 2006), et avec l'avantage d'une taille de fichier souvent réduite et sans souci de brevet (le brevet GIF est néanmoins tombé en 2004 dans le domaine public).
Le PNG, d'ailleurs parfois appelé par boutade PNG's Not GIF (PNG n'est pas GIF), peut faire tout ce que le format GIF peut faire et même plus, comme la translucidité. Il ne permet cependant pas de faire des images animées, mais le format dérivé MNG a été créé par ses auteurs pour pallier ce manque.