Le Portable Network Graphics (PNG) est un format ouvert d’images numériques, qui a été créé pour remplacer le format GIF, à l’époque propriétaire et dont la compression était soumise à un brevet. Le PNG est un format sans perte 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 une spécification pour Internet et l’objet d’une Recommandation W3C et d’une RFC. Il a été créé pour contourner la licence existante sur le format GIF, le plus en vogue à la fin des années 1990, CompuServe refusant de laisser utiliser son format gratuitement. PNG a alors été défini mais en augmentant les capacités de GIF.
Utilisation
Pour les images synthétiques
PNG transparence démonstration. 24bit PNG avec couche alpha 8 bits. |
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 des dégradés. Le PNG surpasse régulièrement le format GIF en ce qui concerne la réduction de la taille des fichiers (avec une palette de couleurs bien choisie) ou la qualité (puisqu’il n’est pas limité à 256 couleurs).
Pour les photos
Les caractéristiques de PNG lui permettent d’enregistrer des photographies sans perte de données, mais au détriment de la taille du fichier qui reste la plupart du temps très supérieure à celle de formats spécifiques aux photographies comme JPEG (ou JPEG 2000).
Détails sur le format
PNG permet principalement d’enregistrer les images matricielles sous différents formats :
- 1 bit donc deux couleurs
- 2 bits pour les images en quadrichromie
- 4 bits permettant de choisir parmi une palette de maximum 16 couleurs contenues dans le fichier
- 8 bits en niveaux de gris (256 niveaux)
- 8 bits permettant de choisir parmi une palette de maximum 256 couleurs par canal contenues dans le fichier (équivalent au format GIF)
- 24 bits en 16 777 216 (couleurs vraies)
- 32 bits, soit 232 ou 4 294 967 296 couleurs.
- 48 bits, soit 248 ou 281 474 976 710 656 couleurs.
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 zlib, mais zopfli peut également être utilisé avec des applications comme advpng.
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 chacun.
La translucidité
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. Internet Explorer 7 et supérieurs gèrent correctement le canal alpha.
La transparence
Lorsque l’image PNG utilise une palette de 256 couleurs maximum, il est possible d’utiliser une des couleurs pour la transparence.
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 sans souci de brevet (le brevet GIF est tombé en 2006 dans le domaine public).