libimage: les plans de bits

dernière mise à jour: 5 avril 2014

Une image que j'appelle parfois bitplane, parfois plan de bits, est une image binaire, c'est-à-dire que chaque pixel est représenté par un seul bit, qui ne peut prendre que deux valeurs: 0 ou 1. Pour chacune de ces deux valeurs, une teinte rgb8 est associée, et ces deux teintes seront utilisables par les routines de sauvegarde de ces images.

Pour les curieu^geeks, voici (au 20 mars 2010) ce qu'est en gros un descripteur de bitplane, sous réserve de modifications puiqu'il faut considérer ça comme une structure opaque :

typedef struct	{
        unsigned int    magic;
        int             width, height;     /* are negative allowed ? */
        int             id;
        U_BYTE          r0, g0, b0, r1, g1, b1;
        char            name[IMG_OBJNAME_LEN+2];
        int             tabname;           /* explain this field, please */
        unsigned long   *plane;
        int             reserved;
        } A_BitPlane;

#define MAGIC_BIT_PLANE 0xb142ae17         /* XXX value not fixed */

Il est possible qu'il existe des contraintes sur les dimensions du bitplane. Utsl.

haut de page

creation

La création sera simple : d'abord, on demande au truc un bitmap, et, si on en obtient un, on ajuste éventuellement les divers paramètres entrevus plus haut. Il peut y avoir des cas où le système refuse.

A_BitPlane * Image_give_me_a_BP(int width, int height);
Demande la fourniture d'un bitplane dons les dimensions sont livrées. Les autres réglages de celui-ci sont positionnés à des valeurs par défaut (lesquelles valeurs sont de nature dddd) cohérentes pour la suite des opérations.
int Image_BP_setname(A_BitPlane *bp, char *name);
Attribue un nom (d'une longueur inférieure à IMG_OBJNAME_LEN) à un bitplane. Ce nom pourra être éventuellement inscrit sur l'image sauvegardée dans un fichier.

haut de page

utilisation

int Image_BP_clear(A_BitPlane *bp, int bit);
Effacement, remise à bit d'une bitplane.
int Image_BP_plot(A_BitPlane *bp, int x, int y, int bit);
Positionnement d'un bit dans le bitplane. Attention, bit doit avoir 0 ou 1 comme valeur.

haut de page

fichier

int Image_BP_savepcx(A_BitPlane *bp, char *filename, int flag);
Enregistrement en PCX monochrome. Ne fonctionne pas encore.
int Image_BP_to_pbm(A_BitPlane *bp, char *fname, int k);
Enregistrement en portable bit map non compressé. La relecture est pour bientôt.

haut de page

Et ensuite ?

Vous en savez assez maintenant. Vous pouvez expérimenter en attendant l'arrivée de l'interface Fortran.

haut de page