Graymap portable (.pgm)

Netpbm Standard

Le format Portable Graymap Format (PGM) est la spécification d'image en nuances de gris de la famille Netpbm, largement utilisée en vision par ordinateur, en robotique, en inspection optique et dans les algorithmes de traitement d'images numériques.

Inspecter et métadonnées

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers PGM en inspectant la séquence d'octets binaires de tête :

Sélectionnez ou déposez des fichiers ici

Conversion 100 % privée dans le navigateur - les fichiers ne quittent jamais votre appareil

ou coller Ctrl+V
Garantie de confidentialité sans transmission réseau : 0 octet téléchargé vers des serveurs externes. Tout le traitement a lieu localement dans le bac à sable de votre navigateur.

Signature d'en-tête au niveau des octets (Magic Bytes)

Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers PGM en inspectant la séquence d'octets binaires de tête :

SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :

50 32 / 50 35

REPRÉSENTATION ASCII : P2 / P5

Normalisation : Netpbm Library Standard

Spécifications techniques

Architecture de conteneurFormat Netpbm ASCII (P2) ou binaire (P5) avec largeur, hauteur, valeur de gris maximale et flux de pixels
CompressionOctets binaires bruts non compressés ou nombres textuels ASCII lisibles par l'homme
Boutisme des octetsGrand-boutiste (Big-Endian) (pour les échantillons binaires 16 bits en mode P5)
Espaces colorimétriquesNuances de gris linéaires ou nuances de gris sRGB
Canaux et structure1 canal en nuances de gris (précision 8 bits ou 16 bits)
Dimensions maximalesPratiquement illimitées (prend en charge un espace de coordonnées arbitraire sur 64 bits)
TransparenceAucune
Streaming et progressifLecture en continu séquentielle ligne par ligne

Matrice de comparaison technique : PGM vs Concurrents

Attribut techniquePGM (Actuel)PBMPPMPNG
Mode couleurNuances de gris (8 bits / 16 bits)Monochrome 1 bitCouleur RVB vraie (24 bits / 48 bits)Nuances de gris, RVB, RVBA
Équivalent NetpbmPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Standard W3C hors Netpbm
Octets magiquesP2 (ASCII) / P5 (Binaire)P1 (ASCII) / P4 (Binaire)P3 (ASCII) / P6 (Binaire)‰PNG....
CompressionNon compresséNon compresséNon compresséDeflate sans perte

Modes de corruption courants et guide de récupération hexadécimale

L'image s'affiche inversée ou complètement surexposée en blanc.

Cause racine: Paramètre 'maxval' erroné dans l'en-tête (par exemple, maxval déclaré à 1 au lieu de 255).

Récupération: Corriger la ligne d'en-tête maxval ou convertir avec le convertisseur Netpbm de File2File.

Analyse de sécurité et vecteurs d'attaque de l'analyseur

Les décodeurs PGM doivent valider avec soin que le nombre de pixels analysés correspond aux dimensions déclarées afin d'éviter les dépassements de tampon.

Vecteurs d'attaque connus

  • Dépassement d'entier lors de l'allocation du tampon largeur * hauteur * (maxval > 255 ? 2 : 1).
  • Dépassement de lecture de tampon lors de la lecture de jetons numériques ASCII malformés.
  • Déni de service par allocation massive de mémoire déclenchée par des dimensions d'en-tête forgées.

Bonnes pratiques de défense: Limiter les dimensions maximales autorisées et les seuils d'allocation de mémoire avant de lire les flux de pixels.

Origines historiques et jalons

2000Standardisation de la profondeur 16 bits (valeur maximale jusqu'à 65535) en mode binaire P5 pour l'imagerie scientifique.
1993Intégration dans la boîte à outils Netpbm comme format intermédiaire standard en nuances de gris.
1989Jef Poskanzer crée le format PGM pour compléter le format PBM avec une prise en charge complète des nuances de gris à 256 niveaux.

Principaux avantages

  • Complexité nulle : extrêmement simple à analyser et à générer en C, Python ou WebAssembly sans bibliothèques externes.
  • La prise en charge native des nuances de gris 16 bits le rend idéal pour les cartes de relief (heightmaps), les cartes de profondeur et l'imagerie thermique.
  • Le mode ASCII (P2) permet l'inspection directe et la manipulation des valeurs de pixels brutes dans les éditeurs de texte standard.

Limites techniques

  • Aucune compression : empreinte de fichier importante par rapport aux formats compressés tels que PNG.
  • Absence de métadonnées pour les dimensions physiques, les espaces colorimétriques ou la géolocalisation.
  • Strictement monocanal : impossible d'y stocker des données couleur ou une transparence alpha.

Anecdotes techniques

  • OpenCV, ROS (Robot Operating System) et les systèmes de vision industrielle utilisent fréquemment le format PGM pour les cartes de navigation SLAM.
  • Les développeurs de jeux vidéo utilisent souvent des fichiers PGM 16 bits comme cartes de relief de terrain, car les données d'élévation brutes ne sont pas compressées et sont faciles à charger.
  • Le paramètre 'maxval' dans l'en-tête définit la valeur de luminosité maximale (généralement 255 pour 8 bits ou 65535 pour 16 bits).

Foire aux questions techniques

À quoi sert le format PGM ?

Le format PGM est principalement utilisé en vision par ordinateur (OpenCV), en robotique (fichiers de cartes ROS), en imagerie scientifique et pour la génération de cartes de relief de terrain 3D.

Quelle est la différence entre les fichiers PGM P2 et P5 ?

Le format P2 est un texte ASCII simple où chaque pixel est un nombre écrit, tandis que le format P5 stocke les pixels sous forme d'octets binaires compacts.

Comment puis-je convertir un fichier PGM en JPG ou PNG ?

Téléchargez votre fichier PGM sur File2File.app pour le convertir en PNG ou JPG directement dans votre navigateur en toute confidentialité.