203 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			203 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html>
 | |
| <head>
 | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | |
| <title>libimage: la doc des effets !</title>
 | |
| <link rel="stylesheet" type="text/css" href="libimage.css">
 | |
| <meta name="generator" content="Vim et huile de phalange">
 | |
| <meta name="keywords" content="libimage, tontonth, effects, Targa">
 | |
| </head>
 | |
| 
 | |
| <body>
 | |
| 
 | |
| <a name="top"><h1>libimage / effets</h1></a>
 | |
| 
 | |
| <p align=center>
 | |
| <tt>dernière mise à jour: 14 décembre 2013</tt><br>
 | |
| </p>
 | |
| 
 | |
| <p class="menuhaut">
 | |
| [<a href="libimage.html#primitives">primitives</a>]
 | |
| [<a href="#effets">effets</a>]
 | |
| [effets <a href="#effets2">2</a> & <a href="#effets3">3</a>]<br>
 | |
| [<a href="#rgbmask">rgbmask</a>]
 | |
| [<a href="#colorize">colorize</a>]
 | |
| [<a href="#essais">essais</a>]
 | |
| [<a href="#liens">liens</a>]
 | |
| </p>
 | |
| 
 | |
| <p>
 | |
| Cette page décrit les "effets spéciaux" que l'on peut appliquer
 | |
| sur une image graçe à la <a href="libimage.html">libimage</a>.
 | |
| Et je suis bien d'accord, il manque des exemples. Vous pouvez en
 | |
| générer rapidement quelque-uns, en faisant appel à une
 | |
| <a href="img-essais.html">fonction de test</a>. Ou plus simplement
 | |
| en utilisant 
 | |
| <a href="http://la.buvette.org/devel/libimage/img-outils.html#effects">l'outil</a>
 | |
| approprié.
 | |
| </p>
 | |
| <h2><a name="effets">effets</a></h2>
 | |
| 
 | |
| <dl class="proto">
 | |
| <dt>int Image_water(Image_Desc *source, Image_Desc *but, int intensite)</b>
 | |
| <dd>déplace randomatiquement les pixels comme si de l'eau était tombé
 | |
|  sur une aquarelle. Attention, il semble y avoir un <i>bug</i> dans
 | |
|  cette fonction.
 | |
| 
 | |
| <dt>int Image_noise(Image_Desc *source, Image_Desc *but, int intensite)</b>
 | |
| <dd>Rajoute du bruit aléatoire absolu dans une image. Une intensité de 10
 | |
|  donne un effet moyen. Chaque composante est traitée séparément.
 | |
| 
 | |
| <dt>int Image_mirror(Image_Desc *src, Image_Desc *dst, int res)</b>
 | |
| <dd>retourne une image rgb[a] de droite à gauche, comme dans un miroir.
 | |
| 
 | |
| <dt>int Image_upside_down(Image_Desc *src, Image_Desc *dst, int res)</b>
 | |
| <dd>Renverse une image de haut en bas ou de droite à gauche. Il ne faut pas
 | |
|  mettre la même image en source et destination.
 | |
| 
 | |
| <dt>int Image_swap_lines(Image_Desc *src, Image_Desc * dst)<br>
 | |
|  int Image_swap_cols(Image_Desc *src, Image_Desc * dst)</b>
 | |
| <dd>Echange des lignes (colonnes) paires et impaires de l'image.
 | |
|  RGB uniquement hélas...
 | |
| 
 | |
| </dl>
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <h2><a name="effets2">effets 2</a></h2>
 | |
| 
 | |
| <dl class="proto">
 | |
| <dt>int Image_sinwave_1(Image_Desc *source, Image_Desc * but, double table[6])</b>
 | |
| <dd>Déformation étrange d'une image. Je ne sais absolument pas ce que doit
 | |
|  contenir la table.
 | |
| 
 | |
| <dt>int Image_sinwave_2(Image_Desc *source, Image_Desc * but, double table[6])</b>
 | |
| <dd>Déformation étrange d'une image. Je ne sais absolument pas ce que doit
 | |
|  contenir la table.
 | |
| 
 | |
| </dl>
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <h2><a name="effets3">effets 3</a></h2>
 | |
| 
 | |
| <p>Dans cette section, il y a des effets plus ou moins pas trop finis.
 | |
| Certains d'entre eux ont été conçus pour mon (futur) logiciel de montage
 | |
| de vidéos <a href="http://tontonth.free.fr/videos/">povesques</a>.
 | |
| Ensuite, quand ils seront fixés, peut-être je changerais leur nom,
 | |
| tout en gardant un alias dans le source <tt>effects3.c</tt>.
 | |
| </p>
 | |
| 
 | |
| <dl class="proto">
 | |
| <dt>int
 | |
| Image_effect_x_0(Image_Desc *src, Image_Desc *dst, int kr, int kg, int kb)</b></dt>
 | |
| <dd>Déja plus de 4 ans de mise au point, et c'est pas encore fini...</dd>
 | |
| 
 | |
| <dt>int
 | |
| Image_effect_x_1(Image_Desc *src, Image_Desc *dst)</b></dt>
 | |
| <dd>Déja plus de 4 ans de mise au point, et c'est pas encore fini...</dd>
 | |
| 
 | |
| 
 | |
| <dt>int
 | |
| Image_effect_x_3(Image_Desc *src, Image_Desc *dst, int kx, int ky, char *comp)</b></dt>
 | |
| <dd>Déja plus de 4 ans de mise au point, et c'est pas encore fini...</dd>
 | |
| 
 | |
| 
 | |
| </dl>
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <a name="rgbmask"><h2>rgbmask</h2></a>
 | |
| 
 | |
| <p>
 | |
| C'est nouveau, ça vient de sortir. Le principe est simple: éliminer, sur
 | |
| des critères divers, une ou deux composantes RGB de l'image, en les 
 | |
| remplaçant par une valeur constante.
 | |
| Hélas, ces effets ont un défaut: ils survivent très mal à la compression
 | |
| <a href="img-fichiers.html#jpeg">JPEG</a>. 
 | |
| </p>
 | |
| 
 | |
| <dl class="proto">
 | |
| <dt>int Image_rgbmask_H(Image_Desc *src, Image_Desc *dst, int gris);
 | |
| <dd>Dans le sens horizontal...
 | |
| <dt>int Image_rgbmask_V(Image_Desc *src, Image_Desc *dst, int gris);
 | |
| <dd>Dans le sens vertival...
 | |
| <dt>int Image_rgbmask_2(Image_Desc *src, Image_Desc *dst, int gris);
 | |
| <dd>Bon, c'est pas mal, mais c'est quand même très dépendant des
 | |
| dimensions de l'image.
 | |
| <dt>int Image_rgbmask_R(Image_Desc *src, Image_Desc *dst, int gris);
 | |
| <dd>Ah, celle-là semble prometteuse. En jouant sur la pondération
 | |
| de l'aléa, on doit pouvoir obtenir quelques trucs sympas...
 | |
| </dl>
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <a name="colorize"><h2>colorize</h2></a>
 | |
| 
 | |
| <p>
 | |
| C'est nouveau, ça vient de sortir. Ce sont des expérimentations sur les
 | |
| relations entre la luminosité, la couleur, et surtout la percevance des
 | |
| gens face à une nouvelle vision du monde.
 | |
| </p>
 | |
| 
 | |
| <dl class="proto">
 | |
| <dt>int Image_BiColor_0(Image_Desc *src, Image_Desc *dst, int k)
 | |
| <dd>Si c'est clair, ça devient sombre. Si c'est sombre, ça devient clair.
 | |
|  Vice-versa et réciproquement inclus. Le paramètre <tt>k</tt> ne sert à
 | |
|  rien et doit être mis à 0.
 | |
| </dl>
 | |
| 
 | |
| <p>
 | |
| Oh, bien entendu, ces tripotages de pixels ça n'est pas au niveau de la
 | |
| <a href="http://foo.buvette.org/bf/pm/">troiD</a> de 
 | |
| <a href="http://foo.buvette.org/bf/hf/">merde</a> faite
 | |
| sous <a href="http://slackware.com/">Linux</a>, mais j'ai quand même
 | |
| dans l'idée d'appliquer ces trucs à des séquences vidéo ou
 | |
| des <a href="http://la.buvette.org/photos/myrys/g/">GIfs animées</a>.
 | |
| </p>
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <a name="essais"><h2>Quelques essais</h2></a>
 | |
| 
 | |
| <p>
 | |
| La rubrique des trucs improbables, des tentatives avortées, des machins
 | |
| pas finis. Nous allons commencer par un vieux truc : l'utilisation de
 | |
| la récursion.
 | |
| </p>
 | |
| 
 | |
| <dl class="proto">
 | |
| <dt>int Image_call_recursion(Image_Desc *image, Image_Desc *dest, int param);
 | |
| <dd>Euh, c'est une peu difficile d'expliquer ce que ça fait, mais il suffit
 | |
|  de savoir que certaines valeurs du paramètre sont meilleures que d'autres.
 | |
| 
 | |
| </dl>
 | |
| 
 | |
| <p>Et des fonctions dans ce genre, il y en a d'autres. Par exemple, pour obtenir
 | |
| un effet assez peu similaire à la récursion, mais quand même, j'ai de la 
 | |
| mosaique sous le coude.
 | |
| </p>
 | |
| 
 | |
| <dl class="proto">
 | |
| <dt>int Image_mosaic_simple(Image_Desc *src, Image_Desc *dst);
 | |
| <dd>Comme le nom l'indique clairement, c'est un truc simple.
 | |
| <dt>int Image_mosaic_0(Image_Desc *src, Image_Desc *dst, int sx, int sy, int flg);
 | |
| <dd>Comme le montre clairement le prototype, il y a des paramètres.
 | |
|  <tt>sx</tt> et <tt>sy</tt> sont les dimensions des pavés (il parait qu'il faut
 | |
|  dire "tuiles" maintenant) que l'on va examiner et traiter. Quand à
 | |
|  <tt>flg</tt>, je pense qu'il ne sert à rien, et qu'il faut mettre 0.
 | |
| 
 | |
| </dl>
 | |
| 
 | |
| <p class="HDP"><a href="#top">haut de page</a></p>
 | |
| <a name="liens"><h2>liens</h2></a>
 | |
| 
 | |
| <p>
 | |
| La classique rubrique des liens, toujours aussi vide.
 | |
| Rattrapez vous <a href="libimage.html#liens">ici</a> ou
 | |
| <a href="img-television.html">là</a>.
 | |
| </p>
 | |
| 
 | |
| <p class="footer">
 | |
| vous pouvez me contacter sur mon
 | |
| <a href="http://foo.bar.quux.over-blog.com/">blog</a><br>
 | |
| Si votre demande est effective, je patche avec de la poudre verte.<br>
 | |
| </p>
 | |
| 
 | |
| </body>
 | |
| </html>
 | 
