109 lines
3.5 KiB
HTML
109 lines
3.5 KiB
HTML
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>libimage: les plans de bits</title>
|
|
<link rel="stylesheet" type="text/css" href="libimage.css">
|
|
<meta name="generator" content="Vim et huile de phalange">
|
|
<meta name="keywords" content="libimage, dinorama, plans de bits">
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<h1>libimage: les plans de bits</h1>
|
|
|
|
<p align=center>
|
|
<tt>dernière mise à jour: 5 avril 2014</tt><br>
|
|
</p>
|
|
|
|
<p>
|
|
Une image que j'appelle parfois <i>bitplane</i>, parfois <i>plan de bits</i>,
|
|
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 <i>rgb8</i> est associée, et ces deux teintes seront
|
|
utilisables par les routines de sauvegarde de ces images.
|
|
</p>
|
|
|
|
<p>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 <i>opaque</i> :
|
|
</p>
|
|
<pre>
|
|
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 */
|
|
</pre>
|
|
|
|
<p>Il est possible qu'il existe des contraintes sur les dimensions
|
|
du bitplane. Utsl.
|
|
</p>
|
|
|
|
<p class="HDP"><a href="#top">haut de page</a></p>
|
|
<h2><a name="creation">creation</a></h2>
|
|
|
|
<p>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.
|
|
</p>
|
|
|
|
<dl class="proto">
|
|
|
|
<dt>A_BitPlane * Image_give_me_a_BP(int width, int height);
|
|
<dd>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 <i>dddd</i>) cohérentes pour la suite
|
|
des opérations.
|
|
|
|
<dt>int Image_BP_setname(A_BitPlane *bp, char *name);
|
|
<dd>Attribue un nom (d'une longueur inférieure à <tt>IMG_OBJNAME_LEN</tt>)
|
|
à un bitplane. Ce nom pourra être éventuellement inscrit sur l'image
|
|
sauvegardée dans un <a href="img-fichiers.html#pcx">fichier</a>.
|
|
|
|
</dl>
|
|
|
|
<p class="HDP"><a href="#top">haut de page</a></p>
|
|
<h2><a name="utilisation">utilisation</a></h2>
|
|
|
|
<dl class="proto">
|
|
<dt>int Image_BP_clear(A_BitPlane *bp, int bit);
|
|
<dd>Effacement, remise à <tt>bit</tt> d'une bitplane.
|
|
|
|
<dt>int Image_BP_plot(A_BitPlane *bp, int x, int y, int bit);
|
|
<dd>Positionnement d'un bit dans le bitplane. Attention, <tt>bit</tt>
|
|
doit avoir 0 ou 1 comme valeur.
|
|
</dl>
|
|
|
|
<p class="HDP"><a href="#top">haut de page</a></p>
|
|
<h2><a name="fichier">fichier</a></h2>
|
|
|
|
<dl class="proto">
|
|
<dt>int Image_BP_savepcx(A_BitPlane *bp, char *filename, int flag);
|
|
<dd>Enregistrement en PCX monochrome. Ne fonctionne pas encore.
|
|
|
|
|
|
<dt>int Image_BP_to_pbm(A_BitPlane *bp, char *fname, int k);
|
|
<dd>Enregistrement en portable bit map non compressé. La relecture
|
|
est pour bientôt.
|
|
</dl>
|
|
|
|
<p class="HDP"><a href="#top">haut de page</a></p>
|
|
<h2>Et ensuite ?</h2>
|
|
|
|
<p>
|
|
Vous en savez assez maintenant. Vous pouvez expérimenter en attendant
|
|
l'arrivée de <a href="image77.html#bitplane">l'interface Fortran</a>.
|
|
</p>
|
|
|
|
<p class="HDP"><a href="#top">haut de page</a></p>
|
|
</body>
|
|
</html>
|
|
|