Linux |
CentOS 5.3 |
|
pbm(5) |
pbm − le format PBM (Portable BitMap) |
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. |
Avant Juin 2000, il y avait tout au plus une image par fichier PBM. De ce fait la plupart des programmes ignorent les données qui se situent après la première image. |
libpbm(3),pnm(5),pgm(5),ppm(5) [NDT : et en ce qui concerne Netpbm] netpbm(1) |
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. |
pbm(5) |