242 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			242 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html>
 | |
| <head>
 | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | |
| <title>libimage: la doc, enfin !</title>
 | |
| <link rel="stylesheet" type="text/css" href="libimage.css">
 | |
| <meta name="generator" content="Vim et huile de phalange">
 | |
| <meta name="keywords" content="libimage, oulala, buv3tt3, Boudet, Targa">
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| 
 | |
| <h1><a name="top">Libimage : <i>La Doc</i></a></h1>
 | |
| 
 | |
| <p align=center>
 | |
| <tt>dernière mise à jour : 15 décembre 2015</tt><br>
 | |
| </p>
 | |
| 
 | |
| <p class=menuhaut>
 | |
| [<a href="#primitives">primitives</a>]
 | |
| [<a href="README.txt">README</a>]
 | |
| [<a href="img-fichiers.html">fichiers</a>]
 | |
| [<a href="#tools">tools</a>]
 | |
| [<a href="img-cadres.html">cadres</a>]
 | |
| <br>
 | |
| [<a href="img-effets.html#effets">effets</a>]
 | |
| [<a href="img-op2x2.html">op2x2</a>]
 | |
| [<a href="img-texte.html">texte</a>]
 | |
| [<a href="img-showdiff.html">showdiff</a>]
 | |
| <br>
 | |
| [<a href="img-filtres.html">filtres</a>]
 | |
| [<a href="img-calculs.html">calculs</a>]
 | |
| [<a href="img-plotters.html">plotteurs</a>]
 | |
| [<a href="#scale">scale</a>]
 | |
| <br>
 | |
| [<a href="img-combine.html">combine</a>]
 | |
| [<a href="img-patterns.html">patterns</a>]
 | |
| [<a href="img-couleurs.html#couleurs">couleurs</a>]
 | |
| [<a href="img-couleurs.html#palettes">palettes</a>]
 | |
| <br>
 | |
| [<a href="img-dither.html">dithering</a>]
 | |
| [<a href="img-operat.html">opérations</a>]
 | |
| [<a href="img-alpha.html">alpha</a>]
 | |
| [<a href="img-povhf15.html">hf 15</a>]
 | |
| [<a href="img-bitplane.html">bitplane</a>]
 | |
| <br>
 | |
| [<a href="image77.html">fortran</a>]
 | |
| [<a href="img-df3.html">density file</a>]
 | |
| [<a href="#messages">messages</a>]
 | |
| [<a href="img-exemples.html">exemples</a>]
 | |
| [<a href="#liens">liens</a>]
 | |
| </p>
 | |
| 
 | |
| <p>
 | |
| <b>libimage</b> est une librairie de traitement de les images que j'ai 
 | |
| fabriquée moi-même avec mon
 | |
| <a href="http://www.vim.org/"><tt>vim</tt></a> et mes
 | |
| <a href="http://gcc.gnu.org/"><tt>gcc & g77</tt></a> tout seul
 | |
| comme un grand. Tout n'est pas documenté, loin de là, seulement les fonctions
 | |
| que j'utilise actuellement. Par contre, la
 | |
| <a href="img-devel.html#compilation">procédure d'installation</a> est à peu
 | |
| près explicite.
 | |
| </p>
 | |
| 
 | |
| <p>
 | |
| Il est difficile de décrire ce que font certaines fonctions, vous devrez donc
 | |
| les essayer par vous même pour vous faire une idée. Et en cas de doute, vous
 | |
| avez les
 | |
| <a href="libimage.tar.gz">sources</a>
 | |
| à votre disposition.
 | |
| <a href="img-devel.html#utsl">utsl</a>. 
 | |
| Il existe aussi quelques <a href="#exemples">exemples</a> d'utilisation
 | |
| dans la vie réelle.
 | |
| </p>
 | |
| 
 | |
| <h2><a name="primitives">primitives</a></h2>
 | |
| 
 | |
| <dl class="proto">
 | |
| <dt>Image_Desc * Image_alloc(int w, int h, int type)
 | |
| <dd>Création d'une nouvelle image. Les types valides sont:
 | |
|  IMAGE_GREY, IMAGE_RGB et IMAGE_RGBA. En fait, les images en niveaux de
 | |
|  gris sont très mal gérées... <b>!!!</b> le contenu de l'image n'est
 | |
|  pas initialisé. Son contenu est allé à Toire. Il faut utiliser
 | |
|  <tt>Image_clear</tt> pour l'effacer.
 | |
| 
 | |
| <dt>int Image_DeAllocate(Image_Desc *)
 | |
| <dd>Restitution de la mémoire 'pixel' d'une image. Attention, la mémoire
 | |
| du descripteur n'est <b>pas</b> rendue. C'est probablement un
 | |
| <a href="img-devel.html#bugs">bug</a>.
 | |
| 
 | |
| <dt>Image_Desc * Image_clone(Image_Desc *i, int copie)
 | |
| <dd>Crée une copie d'une image de même type. Si le flag <tt>copie</tt> est
 | |
|     <small>TRUE</small>, les pixels sont recopiés dans la nouvelle image.
 | |
| 
 | |
| <dt>int Image_clear( Image_Desc *image, int r, int g, int b)
 | |
| <dd>Remplissage d'une image avec les <i>rgb</i> fournis.
 | |
| <i>28 Déc 2001</i>: si un canal alpha est présent, il est mis à 0.
 | |
| 
 | |
| <dt>int Image_plotRGB(Image_Desc *i, int x, int y, int r, int g, int b)
 | |
| <dd>Ecrire un pixel dans une image, avec vérification des limites.
 | |
| 
 | |
| <dt>int Image_plot_channel(Image_Desc *img, char channel, int x, int y, int value)
 | |
| <dd>Cette fonction permet de modifier un seul des canaux de l'image.
 | |
|  Le paramètre 'channel' est un <tt>char</tt> 'r', 'g', 'b', 'R', 'G' ou 'B'.
 | |
|  Le canal <i>alpha</i> n'est pas encore géré.
 | |
| 
 | |
| <dt>int Image_getRGB(Image_Desc *i, int x, int y, int *pr, int *pg, int *pb)
 | |
| <dd>Lecture d'un pixel. En rajoutant un 'A' au nom de la fonction, et un
 | |
|  quatrième pointeur sur <tt>int</tt>, on peut aussi lire le canal
 | |
|  <a href="img-alpha.html">alpha</a>.
 | |
| 
 | |
| <dt>Image_print_version(int flag)
 | |
| <dd>Affiche sur <tt>stdout</tt> la version de la librairie. Si <tt>flag</tt>
 | |
|  est != 0, il y a des informations complémentaires. Si flag > 1 certaines
 | |
|  options de compilation et/ou d'installation sont aussi affichées.
 | |
|  Vous disposez également d'un <tt>#define IMAGE_VERSION_STRING</tt>
 | |
|  utilisable dans un
 | |
|  <i>printf ("version %s\n", IMAGE_VERSION_STRING);</i> de bon aloi.
 | |
|  Attention quand même, si vous utilisez ce <tt>#define</tt> dans un programme
 | |
|  lié avec la bibliothèque dynamique, <i>puis</i> que vous passiez à une 
 | |
|  version différente de la libimage, la version affichée par votre programme
 | |
|  ne sera plus cohérente.<br>
 | |
|  Pour un rapport de bug, le numéro de version est <b>indispensable</b>.
 | |
|  C'est auprès de <a href="mailto:oulala@chez.com">moi</a> qu'il faut raler.
 | |
| 
 | |
| </dl>
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <h2><a name="tools">tools</a></h2>
 | |
| 
 | |
| <p>
 | |
| Différentes routines utilitaires, destinées avant tout à la mise au point
 | |
| des applications, mais qui ne sont pas interdites aux <i>péones</i>, loin
 | |
| de là.
 | |
| </p>
 | |
| 
 | |
| <dl class="proto">
 | |
| 
 | |
| <dt>int Image_dump_descriptor(Image_Desc *im, char *text);
 | |
| <dd>Affiche, de façon désordonnée, les informations disséminées dans un
 | |
|   descripteur d'image <i>Image_desc</i>.
 | |
| 
 | |
| <dt>int Image_dump_rect(Image_Rect *rect, char *texte, int flag);
 | |
| <dd>Affiche le contenu d'une structure Image_Rect. Un flag différent de
 | |
|  zéro rajoute l'autre coin (<i>pan</i>) et la surface.
 | |
| 
 | |
| <dt>int Image_fabrique_une_mire(Image_Desc *im, RGB_map *map);
 | |
| <dd>Euh, ça devrait en principe marcher avec une image 320x200.
 | |
|  Il existe d'autres <a href="img-mires.html">mires</a> dans le truc.
 | |
| 
 | |
| <dt>Les chronomètres:</dt>
 | |
| <dd>On dispose de 42 chronomètres. Etonnant, non?<br>
 | |
| <tt>void Image_start_chrono(char *texte, int num_chrono);</tt><br>
 | |
| <tt>long Image_stop_chrono(char *texte, int num_chrono);</tt><br>
 | |
| Maintenant, comment les utiliser avec précision et certitude est un exercice
 | |
| laissé à nos lecteurs... Sans compter que certains sont réservés par tTh.</dd>
 | |
| 
 | |
| </dl>
 | |
| 
 | |
| <p>
 | |
| Il y a aussi, dans le genre relativement utile,
 | |
|  le <a href="img-marquage.html">marquage</a> des images.
 | |
| 
 | |
| </p>
 | |
| 
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <h2><a name="messages">messages</a></h2>
 | |
| 
 | |
| <p>
 | |
| A la lecture du fichier <tt>tthimage.h</tt> vous avez constaté une série de #define
 | |
| pour les codes d'erreur. La fonction <tt>char * Image_err2str(int codeerr)</tt>
 | |
| permet d'obtenir un texte explicatif. Vous pouvez par exemple écrire:
 | |
| </p>
 | |
| <pre class="code">
 | |
|        foo = Image_blabla(gniark);
 | |
|        printf("retour from hell: %s\n", Image_err2str(foo));
 | |
| </pre>
 | |
| 
 | |
| 
 | |
| <dl class="proto">
 | |
| 
 | |
| <dt>char * Image_err2str(int codeerr);
 | |
| <dd>Conversion du code numérique de retour des fonctions en texte 
 | |
|  klingonesquement compréhensible. Si la valeur envoyée n'est pas
 | |
|  gérée, un message bidon est fabriqué à la volée.
 | |
| <dt>void Image_print_error(char * texte, int err);
 | |
| <dd>Affichage d'un message décrivant une erreur. Si le texte commence par
 | |
| le caractère '-', c'est sur <i>stdout</i>, sinon, c'est sur <i>stderr</i>.
 | |
| Les numéros d'erreur sont à décrypter dans <tt>tthimage.h</tt>.
 | |
| 
 | |
| </dl>
 | |
| 
 | |
| <p>Je suis vraiment désolé, mais je suis totalement incapable
 | |
| de fournir une liste détaillée, avec des explications, de tout
 | |
| les codes d'erreur. Pourtant, ça serait bien comfortable.</p>
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <h2><a name="exemples">exemples</a></h2>
 | |
| 
 | |
| <ul>
 | |
| <li>J'ai <i>enfin</i> confectionné quelques
 | |
|  <a href="img-outils.html">utilitaires</a> pour la ligne de 
 | |
|  commande qui appellent des primitives de la librairie. Ils sont
 | |
|  <a href="img-outils.tar.gz">ici</a> et
 | |
|  je vous invite à en lire les sources. C'est un bon point de départ pour
 | |
|  apprendre à utiliser le bidule.
 | |
| <li>Le postprocessing des images des
 | |
|  <i>Sources de Tar</i> a été
 | |
|  fait avec libimage: combinaison de deux variantes de l'image faite par 
 | |
|  POV et divers effets de cadres.
 | |
| </ul>
 | |
| 
 | |
| <p>
 | |
| En conclusion, vous êtes livré à vous-même avec ce kludge, mais j'espère
 | |
| que vous trouverez autant de <i>fun</i> à l'utiliser que j'en ai à le faire.
 | |
| Et je vous rappelle que ce logiciel est diffusé sous la bienveillante 
 | |
| protection de la <b>DMZIZ licence</b> que vous pouvez trouver
 | |
| <a href="http://la.buvette.org/textes/dmdzz.html">par là</a>.
 | |
| </p>
 | |
| 
 | |
| <h2><a name="liens">liens</a></h2>
 | |
| 
 | |
| <ul>
 | |
| <li>Pour les fous de la fabrication d'images:
 | |
|  <a href="http://www.povray.org/">Povray</a> et
 | |
|  <a href="http://www.fractint.org/">Fractint</a>.
 | |
| <li>Pour les cinglés de la manipulation d'image: 
 | |
|  <a href="http://www.gimp.org/">Gimp</a> qui roulaize grave pour les
 | |
|  clicketeurs, et <a href="http://www.imagemagick.org/">image-magick</a>
 | |
|  pour les batcheurs.
 | |
| </ul>
 | |
| 
 | |
| 
 | |
| <p class="footer">
 | |
| vous pouvez me contacter sur IRC : <tt>tth@freenode#tetalab</tt> <br>
 | |
| Si votre demande est raisonnable, je patche à donf.<br>
 | |
| </p>
 | |
| 
 | |
| 
 | |
| </body>
 | |
| </html>
 | 
