Qu’est-ce qu’un fichier PPM ?
Un fichier PPM (Portable Pixel Map, également appelé portable pixmap) est le format d’image couleur de Netpbm : une grille non compressée d’échantillons rouges, verts et bleus précédée d’un court en-tête textuel. Ses variantes binaire (P6) et en texte brut (P3) privilégient la simplicité d’analyse plutôt que la compacité.
Comment fonctionnent les fichiers PPM
Une image PPM se compose d’un en-tête textuel suivi d’une matrice de pixels. L’en-tête contient le nombre magique, puis la largeur, la hauteur et la valeur maximale d’échantillon (maxval, de 1 à 65535) sous forme de nombres décimaux ASCII séparés par des caractères d’espacement ; # introduit un commentaire. Dans la variante brute habituelle (P6), un seul caractère d’espacement termine l’en-tête et la matrice de pixels suit, par lignes de haut en bas, chaque pixel étant représenté par un échantillon rouge, un vert et un bleu : un octet chacun lorsque maxval est inférieur à 256, sinon deux octets, le plus significatif en premier. La variante en texte brut (P3) écrit plutôt chaque échantillon sous forme de nombre décimal ASCII. Rien n’est compressé ; une image brute de 1920 × 1080 avec un maxval de 255 occupe donc 6 220 800 octets, plus l’en-tête. Netpbm qualifie PPM de format couleur au plus petit dénominateur commun et d’« extrêmement inefficace », et précise que son intérêt réside dans la grande facilité à écrire des programmes pour ce format.
Points clés
- Écrivez la variante brute
P6, sauf si une personne doit lire le fichier. Netpbm décrit la variante en texte brutP3comme assez rare et recommande, pour une compatibilité maximale, un sous-ensemble minimal :P6, un saut de ligne, la largeur et la hauteur séparées par une espace, un saut de ligne, un maxval d’au plus 255, un saut de ligne, puis la matrice de pixels, avec une seule image dans le fichier. Un fichier PPM brut peut valablement contenir plusieurs images à la suite, mais Netpbm avertit que la plupart des outils ne lisent que la première. - Maxval définit à la fois l’échelle et la taille en octets de chaque échantillon. Les valeurs vont de 0 à maxval, qui peut prendre toute valeur de 1 à 65535, et les fichiers bruts passent d’un octet par échantillon à deux octets en ordre gros-boutiste lorsque maxval atteint 256. Un décodeur qui suppose des canaux sur 8 bits en dur interprète incorrectement un fichier valide sur 16 bits, et un décodeur qui ignore maxval se trompe sur la luminosité. Netpbm précise que les fichiers bruts étaient limités à 255 avant avril 2000 et que d’anciens programmes peuvent dépendre de cette limite.
- La signification des couleurs est spécifiée, mais n’est pas enregistrée dans le fichier. Les échantillons d’un PPM conforme sont rouges, verts et bleus selon BT.709, avec la fonction de transfert gamma BT.709, et la valeur maxval sur les trois canaux correspond au blanc D65. La spécification elle-même précise que les fichiers utilisent couramment sRGB à la place ou stockent des échantillons linéaires ; l’en-tête ne possède aucun champ pour l’indiquer, ni aucun emplacement pour un profil ICC. Convenez donc de l’interprétation avec la personne qui produit les fichiers. L’outil
pnmgammade Netpbm permet de convertir entre ces variantes. - PPM n’a pas de canal alpha : chaque pixel comporte exactement trois échantillons. Netpbm conserve la transparence dans un fichier PGM distinct utilisé comme masque de transparence, ou dans son format PAM avec le type de tuple
RGB_ALPHA. La conversion d’une image avec transparence en PPM supprime donc l’alpha, sauf s’il est exporté séparément.
Quand les fichiers PPM sont utiles
Utilisez PPM pour convertir, inspecter ou déboguer des images simplement lorsque la simplicité du décodeur est utile. Convertissez-le avant diffusion lorsque sa taille relativement importante gaspillerait de l’espace de stockage ou de la bande passante réseau.
Comment Transloadit vous aide avec les fichiers PPM
Le tableau des formats d’image de Transloadit répertorie PPM parmi les formats que ses Robots basés sur ImageMagick, dont /image/resize, peuvent lire et écrire ; un fichier PPM peut donc être converti en un format compressé comme PNG ou JPEG dans un Step.
Le tableau indique ce que chaque pile peut lire et écrire. Il ne précise pas comment les échantillons sur 16 bits ou les variantes colorimétriques de PPM sont interprétés, et aucune Assembly n’a été exécutée pour cette entrée.
Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression
Références
- Netpbm : spécification du format d’image couleur PPM (format, sous-ensemble minimal, PPM en texte brut, compatibilité)
- Netpbm : spécification du format d’image PGM en niveaux de gris (variante de masque de transparence)
- Netpbm : spécification du format PAM (types de tuples RGB et RGB_ALPHA)
- Ticket Pillow #5008 : la valeur maximale de gris ou de couleur de PGM et PPM est ignorée