Graymap portable (.pgm)
Netpbm StandardLe 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 :
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 35REPRÉSENTATION ASCII : P2 / P5
Normalisation : Netpbm Library Standard
Spécifications techniques
| Architecture de conteneur | Format Netpbm ASCII (P2) ou binaire (P5) avec largeur, hauteur, valeur de gris maximale et flux de pixels |
| Compression | Octets binaires bruts non compressés ou nombres textuels ASCII lisibles par l'homme |
| Boutisme des octets | Grand-boutiste (Big-Endian) (pour les échantillons binaires 16 bits en mode P5) |
| Espaces colorimétriques | Nuances de gris linéaires ou nuances de gris sRGB |
| Canaux et structure | 1 canal en nuances de gris (précision 8 bits ou 16 bits) |
| Dimensions maximales | Pratiquement illimitées (prend en charge un espace de coordonnées arbitraire sur 64 bits) |
| Transparence | Aucune |
| Streaming et progressif | Lecture en continu séquentielle ligne par ligne |
Matrice de comparaison technique : PGM vs Concurrents
| Attribut technique | PGM (Actuel) | PBM | PPM | PNG |
|---|---|---|---|---|
| Mode couleur | Nuances de gris (8 bits / 16 bits) | Monochrome 1 bit | Couleur RVB vraie (24 bits / 48 bits) | Nuances de gris, RVB, RVBA |
| Équivalent Netpbm | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Standard W3C hors Netpbm |
| Octets magiques | P2 (ASCII) / P5 (Binaire) | P1 (ASCII) / P4 (Binaire) | P3 (ASCII) / P6 (Binaire) | ‰PNG.... |
| Compression | Non 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
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é.