void imel_image_replace_area_color (ImelImage *image, ImelPixel src,
ImelPixel dest, ImelSize tollerance, ImelSize _x1, ImelSize _y1,
ImelSize _x2, ImelSize _y2);
Sostituisce un colore, o un gruppo di colori entro una determinata tolleranza, all'interno di un'area dell'immagine scelta con un altro desiderato.
image: immagine in cui sostituire il colore.
src: colore da sostituire.
dest: colore con cui sostituirlo.
tollerance: tolleranza entro il quale trovare il colore da sostituire.
_x1: punto iniziale dell'asse x in cui è compresa l'area dove sostituire il colore.
_y1: punto iniziale dell'asse y in cui è compresa l'area dove sostituire il colore.
_x2: punto finale dell'asse x in cui è compresa l'area dove sostituire il colore.
_y2: punto finale dell'asse y in cui è compresa l'area dove sostituire il colore.
Esempio 4-7. Esempio di sostituzione di un colore in una determinata area
#include <imel.h>
int main (int argc, char *argv[])
{
ImelImage *image;
ImelError error;
ImelPixel src, dest;
ImelSize start[2], end[2];
if ( argc < 2 ) {
fprintf (stderr, "Usage: %s <image>\n", *argv);
return 1;
}
if ( !(image = imel_image_new_from (argv[1], 0, &error)) ) {
fprintf (stderr, "(%d) %s\n", error.code, error.description);
return 1;
}
src = imel_pixel_new (255, 255, 255, 0);
dest = imel_pixel_new (0, 0, 0, 0);
start[0] = image->width >> 2;
start[1] = image->height >> 2;
end[0] = image->width - start[0];
end[1] = image->height - start[1];
imel_image_replace_area_color (image, src, dest, 48,
start[0], start[1], end[0], end[1]);
if ( !imel_image_save_png (image, "replace_area_color.png",
IMEL_PNG_INTERLACE_NONE, &error) ) {
imel_image_free (image);
fprintf (stderr, "(%d) %s\n", error.code, error.description);
return 1;
}
imel_image_free (image);
return 0;
}