Qu’est-ce que PNG ?

Portable Network Graphics (PNG) est un format d’image matricielle à compression sans perte. Il stocke des images en couleurs indexées (palette), en niveaux de gris ou en RGB, avec 1 à 16 bits par échantillon, chacune pouvant inclure une transparence alpha, et ne possède aucun type de couleur CMYK.

Comment fonctionne PNG

Un flux de données PNG se compose d’une signature de huit octets suivie de blocs, chacun contenant une longueur, un type de quatre lettres, des données et un CRC. Quatre types de blocs sont critiques : IHDR (dimensions, profondeur de bits et type de couleur), PLTE (la palette d’une image en couleurs indexées), IDAT (les pixels compressés) et IEND. Avant la compression, l’encodeur préfixe chaque ligne de balayage par un octet de type de filtre qui sélectionne soit l’absence de filtrage, soit l’un des quatre filtres qui stockent chaque octet sous forme de différence par rapport à une prédiction fondée sur les octets voisins ; le flux filtré est ensuite compressé avec DEFLATE, la seule méthode de compression définie par la spécification. Les deux étapes sont réversibles ; le décodage restitue donc exactement les échantillons encodés. Les blocs auxiliaires contiennent des informations facultatives comme l’espace colorimétrique (sRGB, iCCP, cICP), la densité de pixels (pHYs), du texte et des métadonnées Exif (eXIf). Un décodeur peut ignorer un bloc auxiliaire qu’il ne reconnaît pas, mais il doit signaler un bloc critique inconnu au lieu de l’ignorer silencieusement.

Points clés

  1. La compression PNG est sans perte ; les paramètres de sélection des filtres et de DEFLATE arbitrent donc entre temps d’encodage et taille de fichier, sans jamais modifier les pixels décodés. Un optimiseur sans perte peut aussi réduire un fichier en supprimant des blocs de métadonnées ou en adoptant une représentation plus compacte des mêmes pixels, par exemple en supprimant un canal alpha entièrement opaque ; un fichier plus petit ne prouve donc pas à lui seul que les pixels ont changé. Les quantificateurs de palette comme pngquant, ou les options d’encodeur comme palette dans sharp, produisent un PNG valide en couleurs indexées d’au plus 256 couleurs dont les pixels peuvent différer de la source.
  2. Pour les images en couleur contenant 256 couleurs ou moins, la spécification PNG indique qu’il faut presque toujours utiliser les couleurs indexées, car une représentation en couleurs vraies risque d’être beaucoup plus volumineuse. La conversion est exacte lorsque l’image comporte au plus 256 valeurs de pixel distinctes, alpha compris, avec 8 bits par échantillon ou moins. Pour les photographies, le format n’offre aucun mode avec perte comme solution de repli : le guide des formats de MDN recommande PNG pour les captures d’écran, les schémas et les dessins au trait, et un format avec perte pour les photographies ; un ticket public de sharp signale par ailleurs un PNG devenu plus volumineux que sa source JPEG après réduction des dimensions.
  3. La transparence existe sous trois formes. Les types de couleur 4 et 6 contiennent un canal alpha complet à 8 ou 16 bits par échantillon. Une image en couleurs indexées peut indiquer une valeur alpha par entrée de palette dans un bloc tRNS ; un PNG à palette peut donc avoir une transparence partielle. Pour les images en niveaux de gris et en couleurs vraies sans canal alpha, tRNS ne peut marquer qu’une seule valeur de couleur comme entièrement transparente. L’alpha stocké n’est pas prémultiplié dans les échantillons de couleur.
  4. PNG ne peut pas contenir de données CMYK. Les images en couleur sont en RGB ou à palette, un profil ICC intégré doit être un profil RGB (ou un profil en niveaux de gris pour les images en niveaux de gris), et la spécification demande aux auteurs d’extensions de ne pas ajouter de blocs qui réinterprètent RGB comme CMYK. Les blocs d’espace colorimétrique (sRGB, iCCP, cICP ou gAMA avec cHRM) sont facultatifs ; en leur absence, la spécification considère les échantillons comme des couleurs non étalonnées, dépendantes du périphérique. Vérifiez donc qu’un outil qui supprime les blocs auxiliaires conserve ceux dont dépendent vos couleurs.

Quand PNG est utile

Choisissez PNG pour les captures d’écran, les schémas, les dessins au trait et les autres éléments graphiques aux contours nets, ou pour les ressources dont la transparence et les pixels exacts doivent être préservés lors de l’encodage. Les photographies et les autres images à tons continus tolèrent généralement une compression avec perte ; un format avec perte est donc le choix habituel dans ce cas. PNG conserve chaque échantillon, ce qui augmente souvent la taille de ces images.

Comment Transloadit vous aide avec PNG

Le tableau des formats d’image de Transloadit répertorie PNG parmi les formats que ses Robots basés sur ImageMagick peuvent lire et écrire, et /image/resize mentionne png parmi ses formats de sortie. /image/optimize réduit par défaut les fichiers PNG à l’aide de compresseurs sans perte ; le réglage de lossy: true permet aussi de mettre pngquant en concurrence, ce qui réduit l’image à une palette de 256 couleurs.

Avec lossy: true, le plus petit des résultats sans perte et avec perte est retenu ; la sortie reste donc un fichier PNG, mais l’identité des pixels avec ceux de l’entrée n’est plus garantie. La documentation du Robot avertit que des variations de couleur sont possibles.

Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression

Références

Transformer vos connaissances sur les médias en une chaîne de traitement opérationnelle

Reliez les téléversements, le traitement, l’IA, le stockage et la diffusion via une seule API déclarative — la pile d’encodage, la montée en charge et l’évolution constante des formats sont prises en charge pour vous.

Essayer Transloadit gratuitement