Pixmap portable (.ppm)

Norme Standard

Le 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 :

Sélectionnez ou déposez des fichiers ici

Privé - les fichiers ne quittent jamais votre appareil

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

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 36

REPRÉSENTATION ASCII : P3 / P6

Normalisation : Norme de la bibliothèque Netpbm

Spécifications techniques

Architecture de conteneurFormat Netpbm ASCII (P3) ou binaire (P6) avec largeur, hauteur, valeur de couleur maximale et flux de triplets RVB
CompressionValeurs de pixels non compressées, sous forme de nombres ASCII lisibles par une personne ou d’échantillons binaires bruts
Ordre des octetsLes échantillons binaires utilisent l’ordre gros-boutiste (Big-Endian)
Espaces colorimétriquesRVB linéaire ou sRGB standard
Canaux et structure3 canaux RVB (couleurs vraies 24 bits ou 48 bits)
Dimensions maximalesPratiquement illimitées (prend en charge un espace de coordonnées arbitraire sur 64 bits)
TransparenceAucune (le format PPM standard est strictement RVB opaque)
Prise en charge du traitement en continuLecture séquentielle en continu, ligne par ligne

Matrice de comparaison technique : PPM face aux concurrents

Attribut techniquePPM (Actuel)BMPPNGTIFF
Profondeur de couleurRVB 24 bits / 48 bits (vraies couleurs)RVBA sur 1 à 32 bitsRVBA sur 24 ou 48 bitsRVBA sur 8 à 64 bits
Équivalent NetpbmPPM (Portable Pixmap)Format hors NetpbmFormat W3C hors NetpbmFormat Adobe hors Netpbm
Octets magiquesP3 (ASCII) / P6 (Binaire)BM (0x42 0x4D)‰PNG....Signature binaire « II*\0 » ou « MM\0* »
CompressionNon compresséNon compressé / RLECompression Deflate sans perte ; le gain de taille varie selon le contenu de l’imageLZW / 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

2000Ajout d'une profondeur de couleur de 48 bits (16 bits par canal) à la spécification P6 de Netpbm.
1993Devient un format intermédiaire utilisé par certains outils de conversion graphique de la boîte à outils Netpbm sous Unix.
1989Jef Poskanzer complète le triumvirat Netpbm (PBM, PGM, PPM) avec le format couleur PPM.

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.