libimage: les couleurs.

dernière mise à jour: 12 janvier 2014

Couleurs

int Image_couleur_moyenne(Image_Desc *im, int *pr, int *pg, int *pb);
Calcul de la valeur moyenne de chacune des composantes RGB sur toute la surface de l'image.
int Image_colors_2_Map(Image_Desc *s, Image_Desc *d, RGB_map *m, int mode);
"remappe" l'image source en utilisant uniquement les couleurs contenues dans la palette. Le paramètre mode peut prendre les valeurs 0, 1, 2, 11, 12 ou 13. Une démonstration de ces remaps est prévue. Sauf que ça rame grave sa race !!!
int Image_to_gray(Image_Desc *s, Image_Desc *d, int flag);
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 alpha, 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.
int Image_to_gray_k(Image_Desc *s, Image_Desc *d, nt kr, int kg, int kb, int flag);
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.
Image_color_shift_rgb(Image_Desc *s, Image_Desc *d, int r, int g, int b);
Rotation des 3 composantes couleurs.
int Image_apply_Map(Image_Desc *src, Image_Desc *dst, RGB_map *map);
Bon, voyons, comment expliquer ça?
int Image_gray_Map(Image_Desc *src, Image_Desc *dst, RGB_map *map);
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.

haut de page

Palettes

int Image_load_color_Map(char *file, char *name, RGB_map *where);
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 where->nbre, la valeur retournée par la fonction est le code d'erreur.
Les palettes sont cherchées à divers endroits.
int Image_save_color_Map(char *file, char *name, RGB_map *map);
Les colors maps sont censées etre compatible avec celles de FRACTINT, mais il faudrait verifier. ymmv.
int Image_make_random_Map(char *nom, RGB_map *map, int nbre);
Remplissage de la palette &map avec nbre couleurs aléatoires.
int Image_make_222_Map(char *nom, RGB_map *map, int noise);
Fabrique une palette de 64 couleurs.
int Image_palette_3sinus(char *nom, RGB_map *ou, double pars[8]);
...
int Image_map2ppm(RGB_map *p, char *fname, char *comment);
Exportation d'une palette de couleurs dans un format utilisable par ppmquant, qui permet de réduire le nombre de couleurs d'une image.

Il existe un outil pour dessiner une de ces palettes de couleurs stockée dans un fichier. Lequel appelle une fonction qui doit être décrite ici.

haut de page