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