From: cristy Date: Fri, 2 Apr 2010 23:01:38 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~9704 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f055ae47b39341184f9b595175fb4d0abd46c2e6;p=imagemagick --- diff --git a/wand/mogrify.c b/wand/mogrify.c index dc498c890..20f637693 100644 --- a/wand/mogrify.c +++ b/wand/mogrify.c @@ -2618,57 +2618,22 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, } if (LocaleCompare("recolor",option+1) == 0) { - char - token[MaxTextExtent]; - - const char - *p; - - double - *color_matrix; - Image - *recolor_image; - - register long - x; + *color_image; - unsigned long - order; + KernelInfo + *kernel; - /* - Transform color image. - */ (void) SyncImageSettings(image_info,*image); - p=argv[i+1]; - for (x=0; *p != '\0'; x++) - { - GetMagickToken(p,&p,token); - if (*token == ',') - GetMagickToken(p,&p,token); - } - order=(unsigned long) sqrt((double) x+1.0); - color_matrix=(double *) AcquireQuantumMemory(order,order* - sizeof(*color_matrix)); - if (color_matrix == (double *) NULL) - ThrowWandFatalException(ResourceLimitFatalError, - "MemoryAllocationFailed",(*image)->filename); - p=argv[i+1]; - for (x=0; (x < (long) (order*order)) && (*p != '\0'); x++) - { - GetMagickToken(p,&p,token); - if (*token == ',') - GetMagickToken(p,&p,token); - color_matrix[x]=StringToDouble(token); - } - for ( ; x < (long) (order*order); x++) - color_matrix[x]=0.0; - recolor_image=RecolorImage(*image,order,color_matrix,exception); - color_matrix=(double *) RelinquishMagickMemory(color_matrix); - if (recolor_image == (Image *) NULL) + kernel=AcquireKernelInfo(argv[i+1]); + if (kernel == (KernelInfo *) NULL) + break; + color_image=ColorMatrixImage(*image,kernel,exception); + kernel=DestroyKernelInfo(kernel); + if (color_image == (Image *) NULL) break; *image=DestroyImage(*image); - *image=recolor_image; + *image=color_image; break; } if (LocaleCompare("region",option+1) == 0)