Section courante

A propos

Section administrative du site

Fiche technique
Type Bitmap
Méthode de compression LZ/Huffman
Nombre maximum de couleurs 48 bits de couleurs
Supporte la transparence Oui
Date de conception 1996
Auteur W3C

Introduction

L'extension de fichier «.PNG», de l'abréviation «Portable Network Graphics», permet d'indiquer un format d'image ouvert sans perte de données lors de la compression, développer par le «PNG Development Group» en 1996. Il est reconnu comme standard par ISO/IEC en 2004. Il se veut une solution de remplacement du format de fichier «.GIF». Le format «.PNG» supporte des images en 24 bits RVB ou 32 bits de couleurs RVBA, les teintes de gris, mais ne support pas le CMYK. De plus, le format PNG présente de nombreuses qualités souhaitables par rapport au GIF, comme par exemple, il utilise une compression sans perte très efficace, et il utilise une structure de bloc pour permettre d'entreposer des informations supplémentaires avec un fichier image. Par contre, il n'est pas intensément flexible comme le format TIFF; les lecteurs PNG correctement construits peuvent s'attendre à pouvoir lire tous les fichiers PNG. Sa méthode de compression, un hydrid de compression LZ et Huffman, est au moins généralement un peu plus efficace que la compression LZW quelque peu archaïque utilisée par le format GIF, et souvent remarquable. Il prend en charge les vraies couleurs ainsi que les images monochromes et axées sur la palette, et il permet à la fois la transparence d'une seule couleur et du canal alpha. Mais peut-être le plus important, le format PNG est basé sur une technologie de compression sans encombrement. Par dessus le fait de simplement entreposer des images, le format PNG incorpore un certain nombre d'options haut de gamme pour le rendre plus robuste dans les applications d'imagerie complexes. Ainsi, sa sélection de filtres et de morceaux spéciaux (aussi Chunks) pour une reproduction graphique exacte peut être un peu déroutante. Heureusement, ils peuvent également être ignorés, sauf si vous trouvez que vous en avez besoin. Le format PNG est bien conçu pour vous permettre de n'en utiliser qu'une grande partie selon vos besoins.

Structure du fichier

Comme avec d'autres formats de fichiers graphiques extensibles, tels que GIF et TIFF, un fichier de format PNG se compose d'un certain nombre de blocs, ou «morceaux», pouvant être parcourus et développés selon les besoins. Certains morceaux, comme ceux définissant les données d'image d'un fichier ou les dimensions de l'image, sont essentiels et doivent être lus pour décompresser l'image en question. D'autres, tels que les blocs facultatifs entreposant les commentaires, peuvent être ignorés si vous ne vous souciez pas de ce qu'ils contiennent. La méthode de compression utilisée par le format PNG est appelée déflation (ou deflation en anglais). C'est la méthode de compression par défaut du paquet PKZIP de PkWare, et elle offre l'une des meilleures compression possible pour les images graphiques. De plus, le format PNG vous permet de le régler son niveau de compression, vous pouvez configurer une écriture des PNG pour utiliser différentes quantités d'agressivité lors de la compression d'un fichier. Une compression plus agressive entraîne généralement des fichiers plus petits, mais leur écriture peut prendre plus de temps. Il est important de noter en comparant le format PNG au format JPEG (ayant également un facteur de compression variable) que l'entreposage d'une image dans un fichier PNG vous laissera toujours la même image, peu importe comment vous définissez la valeur de compression. La compression utilisée par le format PNG est sans perte, ce qui signifie que ce qui va dans votre fichier sera exactement ce qui en sortira lorsqu'il sera décompressé. Le code de déflation des données est énormément plus complexe que celui de la compression LZW utilisée dans les fichiers GIF. Pour mieux compresser les données, la déflation analyse en fait les données pour déterminer laquelle de plusieurs approches elle devrait adopter pour la réduire. Les quelques dizaines de lignes de code nécessaires pour effectuer la compression LZW pour GIF se transforment en plusieurs milliers de lignes pour un écriture de format PNG.

Structure d'entête du fichier

Voici la structure d'entête du fichier .PNG :

Déplacement Taille Description
0 4 octets Ce champ permet d'indiquer la signature d'entête du fichier 89h, 50h, 40h, 47h, soit un Caractère(89h) + «PNG».
4 2 octets Ce champ permet d'indiquer un retourne de ligne 0Dh, 0Ah
6 1 octet Ce champ permet d'indiquer le caractère de fin de fichier de la commande «TYPE» du «DOS», soit le caractère 1Ah.
7 1 octet Ce champ permet d'indiquer le caractère de conversion de fin de ligne de UNIX-DOS, soit la caractère 0Ah.

Structure du corps du fichier

Après l'entête du fichier, une suite de bloc de données, appelé «Chunks», permet d'indiquer les informations sur l'image. Voici la structure de ses blocs de données :

Déplacement Taille Description
0 4 octets Ce champ permet d'indiquer la longueur des données.
4 4 octets Ce champ permet d'indiquer le type de bloc (Chunks). Les types de blocs sous forme d'une chaine de caractères de 4 octets :
Valeur Description
"IHDR" Cette valeur permet d'indiquer le premier bloc de données, lequel contient la largeur, la hauteur, la profondeur en bits et le type de couleur.
"PLTE" Cette valeur permet d'indiquer une palette de la liste des couleurs.
"IDAT" Cette valeur permet d'indiquer l'image laquelle peut être de multiple bloc «IDAT» divisé.
"IEND" Cette valeur permet d'indiquer la marque de la fin de l'image.
8 variable Ce champ permet d'indiquer les données de la longueur spécifié.
(8+variable) 4 octets Ce champ permet d'indiquer un code de contrôle CRC de conformité des données.

Remarque

Voir également

Langage de programmation - Traitement d'image - Accueil

Dernière mise à jour : Mercredi, le 2 mars 2016