From: cristy Date: Sat, 7 Nov 2009 18:44:47 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~10407 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4250093d0e4625b6a52bd2e10c16795a438f1e42;p=imagemagick --- diff --git a/magick/fx.c b/magick/fx.c index 50281e75c..e6c53df42 100644 --- a/magick/fx.c +++ b/magick/fx.c @@ -4516,6 +4516,10 @@ MagickExport Image *RecolorImage(const Image *image,const unsigned long order, { #define RecolorImageTag "Recolor/Image" + CacheView + *image_view, + *recolor_view; + Image *recolor_image; @@ -4526,13 +4530,6 @@ MagickExport Image *RecolorImage(const Image *image,const unsigned long order, MagickBooleanType status; - MagickPixelPacket - zero; - - CacheView - *image_view, - *recolor_view; - /* Initialize image attributes. */ @@ -4542,8 +4539,7 @@ MagickExport Image *RecolorImage(const Image *image,const unsigned long order, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickSignature); - recolor_image=CloneImage(image,image->columns,image->rows,MagickTrue, - exception); + recolor_image=CloneImage(image,0,0,MagickTrue,exception); if (recolor_image == (Image *) NULL) return((Image *) NULL); if (SetImageStorageClass(recolor_image,DirectClass) == MagickFalse) @@ -4588,7 +4584,6 @@ MagickExport Image *RecolorImage(const Image *image,const unsigned long order, */ status=MagickTrue; progress=0; - GetMagickPixelPacket(image,&zero); image_view=AcquireCacheView(image); recolor_view=AcquireCacheView(recolor_image); #if defined(MAGICKCORE_OPENMP_SUPPORT) @@ -4601,7 +4596,7 @@ MagickExport Image *RecolorImage(const Image *image,const unsigned long order, recolor_pixel; register const double - *k; + *__restrict k; register const IndexPacket *__restrict indexes; @@ -4621,7 +4616,7 @@ MagickExport Image *RecolorImage(const Image *image,const unsigned long order, if (status == MagickFalse) continue; p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception); - q=QueueCacheViewAuthenticPixels(recolor_view,0,y,recolor_image->columns,1, + q=GetCacheViewAuthenticPixels(recolor_view,0,y,recolor_image->columns,1, exception); if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL)) { @@ -4635,8 +4630,14 @@ MagickExport Image *RecolorImage(const Image *image,const unsigned long order, k=color_matrix; for (x=0; x < (long) image->columns; x++) { - SetMagickPixelPacket(image,p,indexes,&pixel); - SetMagickPixelPacket(recolor_image,p,indexes,&recolor_pixel); + pixel.red=(MagickRealType) p->red; + pixel.green=(MagickRealType) p->green; + pixel.blue=(MagickRealType) p->blue; + if (image->matte != MagickFalse) + pixel.opacity=(MagickRealType) p->opacity; + if (image->colorspace == CMYKColorspace) + pixel.index=(MagickRealType) indexes[x]; + recolor_pixel=pixel; switch (order) { case 0: @@ -4706,7 +4707,8 @@ MagickExport Image *RecolorImage(const Image *image,const unsigned long order, q->red=RoundToQuantum(recolor_pixel.red); q->green=RoundToQuantum(recolor_pixel.green); q->blue=RoundToQuantum(recolor_pixel.blue); - q->opacity=RoundToQuantum(recolor_pixel.opacity); + if (image->matte != MagickFalse) + q->opacity=RoundToQuantum(recolor_pixel.opacity); if (image->colorspace == CMYKColorspace) recolor_indexes[x]=RoundToQuantum(recolor_pixel.index); p++;