Image PNG (.png)
Recommandation StandardPNG (Portable Network Graphics) est un format d’image matricielle sans perte qui prend en charge la transparence par canal alpha variable.
Convertir PNG en JPG
Outil de conversion gratuit de PNG vers JPG dans le navigateur. Convertissez des fichiers instantanément sur votre appareil.
Compresser des fichiers PNG en ligne
Privé - les fichiers ne quittent jamais votre appareil
Inspection et métadonnées
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers PNG en inspectant leur séquence initiale d'octets binaires :
Signature d'en-tête au niveau des octets (octets magiques)
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers PNG en inspectant leur séquence initiale d'octets binaires :
SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :
89 50 4E 47 0D 0A 1A 0AREPRÉSENTATION ASCII : .PNG....
Normalisation : Recommandation W3C (1996) / ISO/IEC 15948:2004
Spécifications techniques
| Architecture de conteneur | Format binaire structuré en blocs, chacun comportant sa longueur, son type, ses données et son CRC |
| Compression | Deflate (LZ77 + codage de Huffman) avec 5 filtres de balayage prédictifs (None, Sub, Up, Average, Paeth) |
| Ordre des octets | Gros-boutiste (Big-Endian) |
| Espaces colorimétriques | sRGB, Display P3, Couleurs indexées (de 1 à 8 bits), Niveaux de gris, Couleurs RVB réelles (24 ou 48 bits) |
| Canaux et structure | RVB + Alpha (Jusqu'à 16 bits par canal / RGBA 64 bits) |
| Dimensions maximales | 2 147 483 647 x 2 147 483 647 pixels (entiers non signés de 4 octets) |
| Transparence | Canal alpha complet, en 8 ou 16 bits |
| Prise en charge du traitement en continu | L’entrelacement en sept passes Adam7 permet un rendu progressif de l’image |
Matrice de comparaison technique : PNG face aux concurrents
| Attribut technique | PNG (Actuel) | WebP | AVIF | JPEG |
|---|---|---|---|---|
| Type de compression | Strictement sans perte (Deflate + filtres prédictifs 2D) | Avec perte (VP8) et sans perte (VP8L) | Avec perte (AV1 intra) et sans perte | Avec perte uniquement (transformée en cosinus discrète) |
| Transparence alpha | Canal alpha complet, en 8 ou 16 bits | Canal alpha 8 bits pris en charge | Prise en charge de l'alpha 8 bits / 10 bits / 12 bits | Aucune prise en charge du canal de transparence |
| Taille de fichier (Photographies) | Souvent plus volumineux que les formats avec perte pour les photos ; la taille relative dépend de l’image et de l’encodeur. | Peut être plus petit que JPEG ; le résultat varie selon l’image et l’encodeur. | Peut être plus petit que JPEG ; le résultat varie selon l’image et l’encodeur. | Moyenne de base |
| Taille de fichier (Graphismes/UI) | Extrêmement compact pour les captures d'écran, le dessin au trait et le texte | Excellent mode sans perte | Bon, mais plus lent à encoder | Médiocre (produit des halos parasites le long des bords nets) |
| Compatibilité des navigateurs | 100 % universelle sur tous les navigateurs depuis 1998 | Prise en charge par plus de 97 % des navigateurs modernes | Prise en charge par plus de 93 % des navigateurs modernes | 100 % universelle |
Modes de corruption courants et guide de restauration hexadécimale
La visionneuse d'images affiche 'Erreur fatale : fichier PNG non valide' ou ne parvient pas à l'ouvrir.
Cause initiale: Les 8 premiers octets ont été altérés par un mode de transfert ASCII (transformation de 0x0D 0x0A en 0x0A ou 0x0D 0x0D 0x0A).
Récupération: Ouvrez le fichier dans un éditeur hexadécimal et vérifiez que les huit premiers octets correspondent à « 89 50 4E 47 0D 0A 1A 0A ». La restauration de ces octets d’en-tête précis permet souvent de récupérer l’image.
pngcheck signale 'Erreur CRC dans le bloc IDAT' ou l'image se charge partiellement avec des lignes de balayage inférieures corrompues.
Cause initiale: Corruption de bits dans le flux de données zlib compressé ou somme de contrôle CRC32 invalide dans un bloc IDAT.
Récupération: Utilisez pngcheck -f ou des utilitaires de récupération de flux Deflate pour recalculer des valeurs CRC32 valides, ou décompressez les lignes de balayage survivantes jusqu'au bloc corrompu.
L'image s'affiche correctement dans les visionneuses de bureau mais échoue dans les applications iOS.
Cause initiale: iOS s'attend au format à inversion d'octets CgBI propriétaire d'Apple, ou à des blocs d'espace colorimétrique non standard.
Récupération: Normalisez l'image à l'aide de 'pngcrush -revert-iphone-optimizations' pour restaurer l'ordre RGBA standard du W3C.
Analyse de sécurité et vecteurs d'attaque de l'analyseur
Le PNG est pris en charge par de nombreux systèmes et applications. Les risques de sécurité comprennent l’épuisement de la mémoire du décodeur et les blocs auxiliaires malveillants.
Vecteurs d’attaque connus
- Blocs de métadonnées tEXt et zTXt surdimensionnés déclenchant un déni de service par épuisement de mémoire (OOM) dans les décodeurs non cloisonnés.
- Vulnérabilités de dépassement de tampon de tas dans les anciennes versions de libpng (par exemple CVE-2015-8126 dans png_set_PLTE).
- Attaques de décompression par inondation de pixels où une image de petite taille de fichier déclare des dimensions énormes (par exemple 100 000 x 100 000 pixels).
- Exfiltration stéganographique cachant des charges utiles chiffrées dans des blocs privés auxiliaires (par exemple eXIf ou types de blocs personnalisés).
Bonnes pratiques de défense: Validez toujours les dimensions de l'image avant d'allouer des tampons de pixels en mémoire. Supprimez les blocs auxiliaires non essentiels (eXIf, tEXt) lors des téléchargements des utilisateurs à l'aide d'un outil d'assainissement sûr pour la mémoire.
Origines historiques et jalons
Principaux avantages
- PNG utilise une compression sans perte : l’encodage d’une image inchangée n’ajoute donc pas de perte due à la compression. Les retouches ou la conversion des couleurs peuvent toutefois modifier les valeurs des pixels.
- La transparence alpha 8 bits permet un fondu harmonieux sur des arrière-plans complexes.
- La correction du gamma et les blocs de chromaticité garantissent un rendu cohérent sur divers moniteurs.
Limites techniques
- Des tailles de fichiers nettement plus importantes par rapport aux formats avec perte modernes tels que WebP ou AVIF pour le contenu photographique.
- Pas d'animation multi-images native dans le PNG standard (nécessite l'extension APNG).
- Une profondeur de bits élevée (16 bits par canal) crée d'immenses tampons de décodage non compressés en mémoire.
Faits intéressants
- L'en-tête magique de 8 octets a été spécifiquement conçu pour détecter la corruption des fins de ligne CR/LF lors des transferts FTP.
- L'acronyme récursif non officiel pour PNG était « PNG's Not GIF ».
- Apple utilise un bloc CgBI propriétaire dans les PNG des applications iOS qui inverse le format RGBA en BGRA pour un rendu direct par le GPU.
Foire aux questions techniques
Pourquoi la taille d'un fichier PNG augmente-t-elle parfois lorsqu'il est enregistré dans des éditeurs d'images ?
Les logiciels utilisent différents niveaux de compression Deflate et choisissent différemment les filtres prédictifs appliqués aux lignes. Des programmes comme Photoshop ajoutent souvent des profils colorimétriques non compressés, des métadonnées XMP et des blocs IDAT de taille non optimisée. Des outils spécialisés comme Compressor de File2File.app réévaluent les cinq filtres de ligne afin de réduire la taille du fichier au minimum.
Quelle est la différence entre PNG-8 et PNG-24 ?
Le PNG-8 utilise une palette de couleurs indexées allant jusqu'à 256 couleurs (similaire au GIF), produisant de très petits fichiers adaptés aux icônes simples. Le PNG-24 prend en charge 16,7 millions de couleurs (couleurs vraies, 8 bits par canal) ; le PNG-32 ajoute un canal alpha de transparence de 8 bits.
Pourquoi PNG possède-t-il 5 filtres de balayage prédictifs ?
Deflate compresse les motifs d'octets répétés. Étant donné que les valeurs de pixels photographiques ou en dégradé changent progressivement, PNG filtre chaque ligne de balayage (None, Sub, Up, Average, Paeth) en calculant les différences entre les pixels adjacents. Cela transforme les données de dégradé en suites d'octets proches de zéro qui se compressent beaucoup mieux avec Deflate.
PNG prend-il en charge les espaces colorimétriques CMJN pour l'impression commerciale ?
Non. La spécification officielle PNG du W3C restreint délibérément les types de couleurs aux niveaux de gris, aux couleurs indexées et au RVB. Les flux de travail d'impression professionnels nécessitant du CMJN doivent utiliser des conteneurs TIFF ou PDF.
Conversions associées à PNG
La conversion d'images matricielles PNG au format JPEG réduit la taille du fichier en appliquant une compression avec perte, ce qui permet aux images de se charger plus rapidement sur les sites Web et d'utiliser moins d'espace de stockage.
La conversion d'une image matricielle JPEG avec perte en une image matricielle PNG sans perte évite toute dégradation supplémentaire et active la prise en charge de la transparence du canal alpha.
La conversion d’images PNG en WebP peut réduire la taille du fichier tout en conservant la transparence. Le résultat dépend du codage avec ou sans perte et du contenu de l’image.
Convertissez les images WebP en PNG lorsque vous avez besoin de ce format ou souhaitez conserver la transparence. La taille dépend de l’image et des paramètres de conversion.
La conversion du format HEIC au format PNG transforme des photos compressées HEVC avec perte en fichiers graphiques sans perte largement pris en charge.
La conversion de fichiers vectoriels SVG en images matricielles PNG transforme des graphiques vectoriels évolutifs définis par du code en grilles de pixels fixes pour une compatibilité universelle avec les applications.
Intégrez des images matricielles PNG dans un conteneur vectoriel SVG XML pour une mise à l'échelle adaptative sur le web et une intégration dans des mises en page compatibles avec les vecteurs.
Convertissez des graphiques Adobe Photoshop PSD en images PNG sans perte avec transparence complète du canal alpha directement dans votre navigateur, sans transmission au serveur.