Qu’est-ce que le format de fichier PNM ?
Portable Anymap est un nom générique qui désigne les formats matriciels PBM, PGM et PPM de Netpbm. Ensemble, ils couvrent les données d’image monochromes, en niveaux de gris et en RGB au moyen de structures étroitement apparentées.
Comment fonctionne le format de fichier PNM
PNM n’est pas un format de fichier à part entière : la documentation de Netpbm le décrit comme une abstraction qui désigne collectivement PBM (à deux niveaux), PGM (niveaux de gris) et PPM (couleur). Chaque image commence par un nombre magique de deux caractères, de P1 à P6, suivi de la largeur et de la hauteur sous forme de nombres décimaux ASCII et, pour PGM et PPM, d’une valeur maximale d’échantillon appelée maxval. Les variantes brutes (P4, P5, P6) stockent ensuite la matrice de pixels en binaire, par lignes de haut en bas : PBM regroupe huit pixels par octet, 1 signifiant noir, tandis que PGM et PPM utilisent un octet par échantillon lorsque maxval est inférieur à 256, et deux octets, le plus significatif en premier, dans le cas contraire. Les variantes en texte brut (P1, P2, P3) écrivent chaque échantillon en texte ASCII. Netpbm décrit ces formats comme des intermédiaires qui, dans leur utilisation la plus pure, n’existent que dans un tube entre deux programmes.
Points clés
- Un nom
.pnmou le type de médiaimage/x-portable-anymapn’indique pas le format contenu dans un fichier. Lisez le nombre magique de deux caractères :P1etP4correspondent à PBM,P2etP5à PGM,P3etP6à PPM ; le plus petit nombre de chaque paire désigne la variante en texte brut. Aucun des types de média Netpbm n’est enregistré auprès de l’IANA. Un encodeur auquel on demande du « PNM » doit choisir l’un des trois formats ; ImageMagick, par exemple, sélectionne le plus adapté à l’image et écrit la variante binaire, sauf instruction contraire. - Les échantillons PGM et PPM ne sont pas toujours sur 8 bits. Le champ maxval de l’en-tête peut prendre toute valeur de 1 à 65535 ; les fichiers bruts utilisent un octet par échantillon lorsqu’il est inférieur à 256, et deux octets, le plus significatif en premier, dans le cas contraire. Des données sur 10 bits avec un maxval de 1023 sont donc valides. Les valeurs des échantillons sont relatives à maxval ; un décodeur qui suppose 255 interprète donc incorrectement à la fois l’organisation des octets et 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.
- Les trois formats n’ont ni canal alpha ni champ pour un profil ICC ; les seules données de forme libre sont les commentaires
#dans l’en-tête. Netpbm transporte la transparence dans un fichier PGM distinct utilisé comme masque de transparence, ou dans son format PAM plus récent, où un type de tuple commeRGB_ALPHAajoute un plan d’opacité. PAM commence parP7et constitue un quatrième format Netpbm, distinct des formats PNM ; ne supposez donc pas qu’un décodeur PNM l’accepte. - Un fichier PBM, PGM ou PPM brut peut contenir plusieurs images à la suite sans délimiteur, selon une règle ajoutée en juillet 2000 ; les variantes en texte brut en contiennent exactement une. Netpbm avertit que la plupart des outils ignorent tout ce qui suit la première image, et la documentation d’OpenImageIO indique que les fichiers multi-images ne sont pas pris en charge pour PNM. Ne comptez donc pas sur la préservation de plusieurs images dans un fichier au fil d’une chaîne de traitement.
Quand le format de fichier PNM est utile
Utilisez les fichiers de la famille PNM comme intermédiaires simples entre des outils en ligne de commande ou des étapes d’analyse d’image, lorsque la possibilité d’écrire un analyseur en quelques lignes compte davantage que la taille. Ils ne sont pas compressés et contiennent très peu de métadonnées ; convertissez-les donc en un format compressé pour le stockage ou la diffusion. La documentation PBM de Netpbm précise elle-même que ce n’est pas un format que l’on utiliserait normalement pour stocker ou transmettre un fichier.
Comment Transloadit vous aide avec le format de fichier PNM
Le tableau des formats d’image de Transloadit répertorie PBM, PGM, PPM, PNM et PAM parmi les formats que ses Robots basés sur ImageMagick, dont /image/resize, peuvent lire et écrire ; un fichier Netpbm peut donc être converti en un format compressé dans un Step.
Le tableau indique ce que chaque pile peut lire et écrire. Il ne précise ni la variante PNM écrite ni le traitement des échantillons sur 16 bits, 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 : pnm, le superformat Netpbm (définition, type de média, nom de fichier)
- Netpbm : spécification du format d’image PBM à deux niveaux
- Netpbm : spécification du format d’image PGM en niveaux de gris (maxval, masque de transparence)
- Netpbm : spécification du format d’image couleur PPM
- Netpbm : spécification du format PAM (relation avec PNM, types de tuples alpha)
- Formats d’image d’ImageMagick : ligne PNM (sélection du format de sortie, variantes binaires et ASCII)
- Modules de formats inclus dans OpenImageIO : PNM / Netpbm