Les fichiers bitmap représentent des images construites point par point, chaque point pouvant avoir une des deux valeurs logique 0 ou 1. En noir et blanc, la couleur blanche sera associée à la valeur 0 et la couleur noire associée à la valeur 1. Ces fichiers sont rangés dans le répertoire suivant :
/usr/X11R6/include/X11/bitmaps
Un fichier bitmap est un fichier texte écrit en langage C. Ce fichier contient la taille de l'image, ainsi qu'un tableau de valeurs exprimées en hexadécimal spécifiant les bits (convertis en binaires, cela donnera les ``0'' ou ``1'' qui seront traduits en blanc ou noir). Par exemple, le fichier suivant :
/usr/X11R6/include/X11/bitmaps/xlogo11
peut être édité avec l'éditeur bitmap appellé bitmap
(voir figure 3.1), et visualisé par une commande (more, less, cat
...) ou un éditeur (emacs, vi
...). Voici ce que contient ce fichier (réarrangé ligne par ligne de l'image pour qu'il soit plus clair) :
#define xlogo11_width 11 #define xlogo11_height 11 static char xlogo11_bits[] = { 0x0f, 0x04, 0x0f, 0x02, 0x1e, 0x01, 0x3c, 0x01, 0xb8, 0x00, 0x58, 0x00, 0xe8, 0x00, 0xe4, 0x01, 0xc4, 0x03, 0xc2, 0x03, 0x81, 0x07 };
Le début du fichier contient le nombre de pixels sur l'horizontale et la verticale (ici respectivement 11 et 11). Ensuite vient le tableau qui contient les valeurs en octal. Pour la première, par exemple, 0f se traduit en binaire par 0000 11113.1 qui, inversé, donne 1111 0000 (le poids le plus faible est à droite, le ``f'' ici). On peut vérifier grâce à l'editeur bitmat qu'il y a bien pour la première ligne 4 pixels noirs suivits de 4 pixels blancs. La seconde valeur, 04, se traduit en binaire par 0100 0000 qui, inversé, donne 0010 0000. Comme la ligne contient 11 pixels, seuls les trois premiers sont utilisés (001 ici, qui correspond bien à 2 pixels blancs suivis d'un pixel noir) et les cinq autres pixels sont perdus. Les deux nombres suivants sont utilisés pour la seconde ligne, et ainsi de suite...
On peut appeller la commande bitmap
avec des options, comme la taille de l'image (-size) ou la taille d'un carreau élémentaire (-sh ou -sw) :
bitmap -size 17x25 -sh 6 -sw 6 image.xbm
L'image aura une taille de 17 carreaux en largeur et 25 carreaux en hauteur, avec chaque carreau ayant pour taille 6 pixels sur 6. Il y aura 3 colonnes dans le fichier image.xbm
(
,
valeur supérieure à 17 la plus proche) et 7 bits seront perdus (24-17=7). Le tableau aura au total
valeurs.
L'éditeur bitmap permet de modifier une image bitmap déjà existente, ou bien d'en créer une nouvelle, avec tous les outils nécessaires (copier, coller, zoom...). Il existe deux commandes qui permettent de visualiser en ASCII un fichier bitmap (bmtoa
) et inversement (atobm
). Ces commandes servent à visualiser rapidement une image, par exemple. Par exemple, pour le fichier xlogo11
, la commande :
bmtoa /usr/X11R6/include/X11/bitmaps/xlogo11
donne le résultat illustré par la figure 3.2.