Le format PBM est un format de fichier représentant le plus petit commun
dénominateur des images monochromes.
PBM est le langage commun à de nombreux filtres de conversion d'images. Du
fait que ce format n'est pas conçu pour être efficace, il est donc simple et
permet de développer facilement des programmes pour la conversion dans
d'autres formats ou pour manipuler des images.
Ce n'est pas un format que l'on devrait utiliser pour conserver une image ou
l'envoyer à quelqu'un : PBM est un format non compressé, donc très lourd. PBM
est juste un format intermédiaire qui, dans son usage le plus courant, vit
dans un tube entre deux programmes.
Un fichier PBM consiste en une séquence d'une ou plusieurs images PBM. Il n'y
a pas de données ni de délimiteurs entre ou après les images.
Chaque image PBM est structurée de la façon suivante :
- -
-
Un « nombre magique » pour identifier le type de fichier. Le nombre magique
de PBM est « P4 »
- -
-
Un espace ou autre caractère de séparation (tabulation, passage à la ligne,
retour chariot).
- -
-
La largeur de l'image en pixels, encodée en ASCII et notée en décimal.
- -
-
Un espace ou autre caractère de séparation (tabulation, passage à la ligne,
retour chariot).
- -
-
La hauteur de l'image en pixels, encodée en ASCII et notée en décimal.
- -
-
Un espace ou autre caractère de séparation (tabulation, passage à la ligne,
retour chariot).
- -
-
Une trame [NDT : en réalité ce sont des 0 et 1] de
hauteur
lignes , de haut en bas. Chaque ligne est large de
largeur
colonnes. Il n'est pas obligé que ces lignes soient complètes jusqu'au bout.
Chaque point, appelé bit, représente un pixel : 1 est égal à noir, 0 à blanc.
L'ordre des pixels est de gauche à droite. Les bits les plus significatifs
sont stockés en premier à l'intérieur de chaque octet, et les moins
significatifs en dernier. L'ordre des octets reste tel quel : il va du début
à la fin du fichier.
- -
-
Les lignes commençant par « # », avant les lignes qui indiquent la largeur
et la hauteur sont des commentaires et sont ignorés.
Il existe aussi une autre version du format PBM, encore plus simple, et qui
utilise encore plus d'espace disque que le PBM, que l'on appelle le PBM brut.
Le PBM brut était la première version du format PBM, mais même son inventeur
ne pouvait pas supporter le gaspillage des ressources dû à l'utilisation du
PBM brut, et a donc créé le format PBM tel que nous le connaissons
aujourd'hui. Le PBM brut est si redondant qu'il est virtuellement impossible à
altérer. Vous pouvez l'envoyer via un serveur mail peu sûr ou peu fiable (ce
qui était le but premier du PBM) et il arrive encore lisible [NDT : ce qui
n'était pas toujours le cas des courriels en 1988]. Vous pouvez
inverser les valeurs d'une douzaine de pixels aléatoirement et facilement
reconstituer l'image originale. Aussi, nous avons absolument besoin de décrire
le format ici, parce que vous pouvez le connaître rien qu'en inspectant les
fichiers :
Voici la liste des différences avec le format PBM normal :
- -
-
Il y a exactement une image par fichier.
- -
-
Le « nombre magique » est « P1 » au lieu de « P4 »
- -
-
Chaque point de la trame est représenté par un bit encodé en ASCII contenant
1 ou 0, représentant le noir et le blanc respectivement. Il n'y a pas de
caractères signifiant la fin de la ligne.
- -
-
Un espace dans la trame est ignoré.
- -
-
Vous pouvez mettre n'importe quoi après la trame, tant que ça
commence par un espace.
- -
-
Aucune ligne ne devrait faire de plus de 70 caractères de long.
Voici l'exemple d'une petite image en PBM brut :
P1
# feep.pbm [NDT : la trame commence 2 lignes en dessous]
24 7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0
0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Vous pouvez générer un PBM brut à partir d'un PBM normal (seulement la première
image) avec le programme
pnmtoplainpnm.
Les programmes qui lisent ce format devraient être très indulgents en
acceptant tout ce qui ressemble à une image matricielle.
Copyright (C) 1989, 1991 by Jef Poskanzer.
Traduit par François Wendling <
frwendling@free.fr>, le
30 octobre 2005.
Si vous désirez plus d'informations sur le « nombre magique », consultez
file(1) et
magic(5).
NetPbm (anciennement PbmPlus) était la première suite de manipulation d'images
utilisable dans un environnement texte et certains programmes de NetPbm sont
parmi les plus vieux qui sont encore utilisés actuellement (1988), bien avant
que The GIMP (voir
gimp(1)) et
ImageMagick(1) apparaissent, d'où le fait que
certains formats d'images gérés par NetPbm sont inusités de nos jours.
Allez voir
HISTORY
dans le répertoire source de NetPbm, ou dans
/usr/share/doc/netpbm/HISTORY[.gz]
pour plus d'informations concernant PBMplus, NetPBM et tous leurs dérivés.