Struttura del formato XBM

Da Gambas-it.org - Wikipedia.

Il formato X BitMap (XBM) è un formato di file immagine utilizzato dal sistema X Window.

Il codice dei file XBM ha la forma di file sorgenti del linguaggio C.

Un file XBM è costituito nel seguente preciso ordine da tre elementi:

1) la definizione del numero di pixel della larghezza dell'immagine;
2) la definizione del numero di pixel dell'altezza dell'immagine;
3) i dati del disegno dell'immagine.


Definizione della larghzza e dell'altezza dell'immagine XBM

Per la definizione dei numeri di pixel costituenti la larghezza e l'altezza dell'immagine si utilizza per ciascuna definizione la direttiva: " #define ".

Va precisato che:

  • l'identificatore della direttiva relativa alla larghezza dell'immagine XBM deve avere come nome la parola "width".

Esempio:

#define width numero_di_pixel

Tale nome può essere preceduto da una qualsiasi parola, ma in tal caso va separato con un trattino in basso: larghezza_width .


  • l'identificatore della direttiva relativa all'altezza dell'immagine XBM deve avere come nome la parola "height".

Esempio:

#define height numero_di_pixel

Tale nome può essere preceduto da una qualsiasi parola, ma in tal caso va separato con un trattino in basso: larghezza_height .


Impostazione dei dati del disegno dell'immagine

I dati costituenti il disegno del'immagine sono impostati in un array statico. L'identificatore dell'array deve essere necessariamente la parola "bits".
Tale identificatore può essere preceduto da una qualsiasi parola, ma in tal caso va separato con un trattino in basso: dati_bits .

Ogni bit di ciascun byte di tale array rappresenta un pixel bianco o nero: il pixel bianco è rappresentato da un bit posto a zero, il pixel nero è rappresentato da un bit posto a 1. Pertanto ogni byte dell'array rappresenta 8 pixel dell'immagine.


Mostriamo un esempio nel quale sarà impostato il codice di un file XBM di un'immagine 8x8 pixel che rappresenta una X:

#define width 8                                    /* Larghezza dell'immagine = 8 pixel */
#define height 8                                   /* Altezza dell'immagine = 8 pixel */

static char bits[] = { 0x81, 0x42, 0x24, 0x18,     /* Dati costituenti il disegno dell'immagine */
                       0x18, 0x24, 0x42, 0x81 };