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>
 |