Pixmap portable (.ppm)
Norme StandardLe format Portable Pixmap (PPM) est le standard RVB en couleurs vraies de la famille graphique Netpbm. Il offre la représentation non compressée la plus simple possible des images numériques en couleurs vraies.
Inspection et métadonnées
Les systèmes d'exploitation et les analyseurs de fichiers identifient les fichiers PPM 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 PPM en inspectant leur séquence initiale d'octets binaires :
SIGNATURE HEXADÉCIMALE (DÉCALAGE 0) :
50 33 / 50 36REPRÉSENTATION ASCII : P3 / P6
Normalisation : Norme de la bibliothèque Netpbm
Spécifications techniques
| Architecture de conteneur | Format Netpbm ASCII (P3) ou binaire (P6) avec largeur, hauteur, valeur de couleur maximale et flux de triplets RVB |
| Compression | Valeurs de pixels non compressées, sous forme de nombres ASCII lisibles par une personne ou d’échantillons binaires bruts |
| Ordre des octets | Les échantillons binaires utilisent l’ordre gros-boutiste (Big-Endian) |
| Espaces colorimétriques | RVB linéaire ou sRGB standard |
| Canaux et structure | 3 canaux RVB (couleurs vraies 24 bits ou 48 bits) |
| Dimensions maximales | Pratiquement illimitées (prend en charge un espace de coordonnées arbitraire sur 64 bits) |
| Transparence | Aucune (le format PPM standard est strictement RVB opaque) |
| Prise en charge du traitement en continu | Lecture séquentielle en continu, ligne par ligne |
Matrice de comparaison technique : PPM face aux concurrents
| Attribut technique | PPM (Actuel) | BMP | PNG | TIFF |
|---|---|---|---|---|
| Profondeur de couleur | RVB 24 bits / 48 bits (vraies couleurs) | RVBA sur 1 à 32 bits | RVBA sur 24 ou 48 bits | RVBA sur 8 à 64 bits |
| Équivalent Netpbm | PPM (Portable Pixmap) | Format hors Netpbm | Format W3C hors Netpbm | Format Adobe hors Netpbm |
| Octets magiques | P3 (ASCII) / P6 (Binaire) | BM (0x42 0x4D) | ‰PNG.... | Signature binaire « II*\0 » ou « MM\0* » |
| Compression | Non compressé | Non compressé / RLE | Compression Deflate sans perte ; le gain de taille varie selon le contenu de l’image | LZW / Deflate / Zip |
Modes de corruption courants et guide de restauration hexadécimale
L'image s'affiche avec un décalage diagonal des canaux de couleur.
Cause initiale: Octet tronqué dans le flux de triplets RVB provoquant un désalignement des octets rouges, verts et bleus suivants.
Récupération: Réalignez les décalages des triplets RVB ou convertissez le fichier avec Netpbm Converter de File2File.app.
Analyse de sécurité et vecteurs d'attaque de l'analyseur
Les décodeurs PPM doivent se prémunir contre les dépassements d'entiers lors du calcul de la taille des tampons de triplets RVB à 3 octets.
Vecteurs d’attaque connus
- Dépassement d'entier lors de l'allocation du tampon largeur * hauteur * 3.
- Lecture au-delà des limites du tampon lors de la lecture de jetons ASCII malformés en mode P3.
- Déni de service par des déclarations d'allocation de mémoire excessives.
Bonnes pratiques de défense: Limitez strictement la taille des fichiers PPM ASCII afin d’éviter les attaques par déni de service.
Origines historiques et jalons
Principaux avantages
- Simplicité architecturale absolue : ne nécessite aucune bibliothèque de compression pour lire, écrire ou manipuler des fichiers.
- Le mode ASCII (P3) permet aux programmeurs de visualiser, copier et modifier directement les valeurs de couleur RVB brutes dans un éditeur de texte.
- Format intermédiaire standard utilisé dans les cours universitaires d'infographie et les projets de lancer de rayons.
Limites techniques
- Les images P6 non compressées sur 8 bits peuvent être volumineuses : les données de pixels d’une image RVB de 3840 × 2160 occupent environ 24,9 millions d’octets, hors en-tête.
- Inefficace pour la diffusion sur le Web ou les transferts réseau.
- Aucune prise en charge de la transparence alpha ou des profils colorimétriques intégrés.
Faits intéressants
- Pratiquement tous les étudiants en informatique qui écrivent un logiciel de lancer de rayons produisent leurs premiers rendus au format PPM.
- Dans le format PPM en ASCII ('P3'), une image est littéralement un fichier texte de nombres : '255 0 0' pour le rouge, '0 255 0' pour le vert, '0 0 255' pour le bleu.
- La suite Netpbm a été initialement distribuée sur les bandes magnétiques Unix 4.3BSD à la fin des années 1980.
Foire aux questions techniques
Pourquoi les cours d'informatique utilisent-ils le format PPM ?
Parce que le format PPM ne requiert aucune bibliothèque externe ni algorithme de compression complexe, ce qui permet aux étudiants d'apprendre les principes de l'infographie en effectuant directement des calculs sur les pixels bruts.
Quelle est la différence entre les formats PPM P3 et P6 ?
Le format P3 stocke les triplets RVB sous forme de nombres textuels ASCII simples, tandis que le format P6 stocke les triplets RVB sous forme d'octets binaires bruts.
Comment puis-je convertir un fichier PPM en JPG ou PNG ?
Vous pouvez convertir des fichiers PPM en PNG ou JPG directement dans votre navigateur en utilisant File2File.app, sans qu'aucune donnée ne quitte votre appareil.