4.28. imel_image_replace_area_color ()


 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.

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

Figura 4-8. Immagini di esempio del funzionamento di imel_image_replace_area_color ()

L'immagine precedente dopo la sostituzione del bianco col nero in un'area specifica: