109 lignes
		
	
	
		
			3.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			109 lignes
		
	
	
		
			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>
 | |
| 
 | 
