libtthimage/Doc/img-couleurs.html

114 lines
4.0 KiB
HTML
Raw Normal View History

2022-06-26 11:23:53 +11:00
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>libimage: utilisation des couleurs</title>
<link rel="stylesheet" type="text/css" href="libimage.css">
<meta name="generator" content="Vim et huile de phalange">
<meta name="keywords" content="libimage, Boudet, RGBA, palette, CMJK">
</head>
<body>
<a name="top"><h1>libimage: les couleurs.</h1></a>
<p align=center>
<tt>dernière mise à jour: 12 janvier 2014</tt><br>
</p>
<p class="menuhaut">
[<a href="libimage.html#primitives">primitives</a>]
[<a href="#palettes">palettes</a>]
</p>
<h2><a name="couleurs">Couleurs</a></h2>
<dl class="proto">
<dt>int Image_couleur_moyenne(Image_Desc *im, int *pr, int *pg, int *pb);
<dd>Calcul de la valeur moyenne de chacune des composantes RGB sur toute la
surface de l'image.
<dt>int Image_colors_2_Map(Image_Desc *s, Image_Desc *d, RGB_map *m, int mode);
<dd>&quot;remappe&quot; l'image source en utilisant uniquement les couleurs
contenues dans la palette. Le paramètre <tt>mode</tt> peut prendre les
valeurs 0, 1, 2, 11, 12 ou 13. Une démonstration de ces <i>remaps</i> est
<a href="http://tboudet.free.fr/libimage/">prévue</a>.
<i>Sauf que ça rame grave sa race !!!</i>
<dt>int Image_to_gray(Image_Desc *s, Image_Desc *d, int flag);
<dd>Transforme une image couleur en image en niveau de gris. L'image
'destination' est toujours une image RGB, seul le contenu est converti
en 'photo noir et blanc'. Le canal <a href="img-alpha.html">alpha</a>,
si il existe, n'est pas touché.
Si le flag est à 0, on utilise les poids adéquats (r=297 v=589 g=114),
sinon, les 3 composantes ont toutes le même poids.
<dt>int Image_to_gray_k(Image_Desc *s, Image_Desc *d, nt kr, int kg, int kb, int flag);
<dd>Identique à la fonction précédente, sauf qu'on peut spécifier les poids de
chacune des composantes. Attention aux dépassements de capacité, qui peuvent
néammoins devenir outils de création.
<dt>Image_color_shift_rgb(Image_Desc *s, Image_Desc *d, int r, int g, int b);
<dd>Rotation des 3 composantes couleurs.
<dt>int Image_apply_Map(Image_Desc *src, Image_Desc *dst, RGB_map *map);
<dd>Bon, voyons, comment expliquer ça?
<dt>int Image_gray_Map(Image_Desc *src, Image_Desc *dst, RGB_map *map);
<dd>Chaque pixel de l'image est d'abord converti en niveau de gris par
un calcul alambiqué, puis retraduit en couleurs en utilisant la palette
fournie.
</dl>
<p class="HDP"><a href="#top">haut de page</a></p>
<h2><a name="palettes">Palettes</a></h2>
<dl class="proto">
<dt>int Image_load_color_Map(char *file, char *name, RGB_map *where);
<dd>Les colors maps sont censees etre compatible avec celles de FRACTINT,
mais il faudrait verifier. En prime, je soupçonne un bug dans cette
fonction. Le nombre de couleurs lues est dans <tt>where->nbre</tt>, la
valeur retournée par la fonction est le code d'erreur.<br>
Les palettes sont cherchées à divers
<a href="img-devel.html#path">endroits</a>.
<dt>int Image_save_color_Map(char *file, char *name, RGB_map *map);
<dd>Les colors maps sont censées etre compatible avec celles de FRACTINT,
mais il faudrait verifier. ymmv.
<dt>int Image_make_random_Map(char *nom, RGB_map *map, int nbre);
<dd>Remplissage de la palette <i>&amp;map</i> avec <i>nbre</i> couleurs
aléatoires.
<dt>int Image_make_222_Map(char *nom, RGB_map *map, int noise);
<dd>Fabrique une palette de 64 couleurs.
<dt>int Image_palette_3sinus(char *nom, RGB_map *ou, double pars[8]);
<dd>...
<dt>int Image_map2ppm(RGB_map *p, char *fname, char *comment);</dt>
<dd>Exportation d'une palette de couleurs dans un format utilisable
par <tt>ppmquant</tt>, qui permet de réduire le nombre de couleurs
d'une image.</dd>
</dl>
<p>Il existe un <a href="img-outils.html#plotmap">outil</a> pour dessiner
une de ces palettes de couleurs stockée dans un fichier.
Lequel appelle une fonction qui doit
être décrite <a href="img-plotters.html">ici</a>.
</p>
<p class="HDP"><a href="#top">haut de page</a></p>
<p class="footer">
Si votre demande est colorée, je patche à donf.<br>
<a href="#top">haut de page</a></p>
</body>
</html>