next up previous contents index
Next: Les fichiers pixmap Up: Applications graphiques sous XFree86 Previous: Applications graphiques sous XFree86

Les fichiers bitmap

  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 };


  
Figure 3.1: L'éditeur bitmap et le logo xlogo11.
\includegraphics[width=13cm]{images/bitmap.eps}

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 ( $3\times 8=24$, valeur supérieure à 17 la plus proche) et 7 bits seront perdus (24-17=7). Le tableau aura au total $3\times 25=75$ 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.


  
Figure 3.2: Résultat de la commande bmtoa sur l'image xlogo11.
\begin{figure}
\begin{center}
\begin{tex2html_preform}\begin{verbatim} ...


next up previous contents index
Next: Les fichiers pixmap Up: Applications graphiques sous XFree86 Previous: Applications graphiques sous XFree86
MATHIEU DECORE
1999-11-03
Merci de me dire ce que pensez de ce document.