From 7f3a0d106b3a8b28e0d2b572a4f80baeb546f38d Mon Sep 17 00:00:00 2001 From: cristy Date: Mon, 5 Sep 2011 23:27:59 +0000 Subject: [PATCH] --- MagickCore/effect.c | 91 ++++++++++++++++----------------------------- 1 file changed, 33 insertions(+), 58 deletions(-) diff --git a/MagickCore/effect.c b/MagickCore/effect.c index 9b7f00804..161ef7158 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -4840,9 +4840,6 @@ MagickExport Image *UnsharpMaskImage(const Image *image, #endif for (y=0; y < (ssize_t) image->rows; y++) { - PixelInfo - pixel; - register const Quantum *restrict p; @@ -4862,63 +4859,41 @@ MagickExport Image *UnsharpMaskImage(const Image *image, status=MagickFalse; continue; } - pixel=bias; for (x=0; x < (ssize_t) image->columns; x++) { - if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0) - { - pixel.red=GetPixelRed(image,p)-(MagickRealType) GetPixelRed(image,q); - if (fabs(2.0*pixel.red) < quantum_threshold) - pixel.red=(MagickRealType) GetPixelRed(image,p); - else - pixel.red=(MagickRealType) GetPixelRed(image,p)+(pixel.red*amount); - SetPixelRed(unsharp_image,ClampToQuantum(pixel.red),q); - } - if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0) - { - pixel.green=GetPixelGreen(image,p)- - (MagickRealType) GetPixelGreen(image,q); - if (fabs(2.0*pixel.green) < quantum_threshold) - pixel.green=(MagickRealType) GetPixelGreen(image,p); - else - pixel.green=(MagickRealType) GetPixelGreen(image,p)+ - (pixel.green*amount); - SetPixelGreen(unsharp_image, - ClampToQuantum(pixel.green),q); - } - if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0) - { - pixel.blue=GetPixelBlue(image,p)-(MagickRealType) - GetPixelBlue(image,q); - if (fabs(2.0*pixel.blue) < quantum_threshold) - pixel.blue=(MagickRealType) GetPixelBlue(image,p); - else - pixel.blue=(MagickRealType) GetPixelBlue(image,p)+ - (pixel.blue*amount); - SetPixelBlue(unsharp_image,ClampToQuantum(pixel.blue),q); - } - if (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) && - (image->colorspace == CMYKColorspace)) - { - pixel.black=GetPixelBlack(image,p)-(MagickRealType) - GetPixelBlack(image,q); - if (fabs(2.0*pixel.black) < quantum_threshold) - pixel.black=(MagickRealType) GetPixelBlack(image,p); - else - pixel.black=(MagickRealType) GetPixelBlack(image,p)+ - (pixel.black*amount); - SetPixelBlack(unsharp_image,ClampToQuantum(pixel.black),q); - } - if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0) - { - pixel.alpha=GetPixelAlpha(image,p)-(MagickRealType) - GetPixelAlpha(image,q); - if (fabs(2.0*pixel.alpha) < quantum_threshold) - pixel.alpha=(MagickRealType) GetPixelAlpha(image,p); - else - pixel.alpha=GetPixelAlpha(image,p)+(pixel.alpha*amount); - SetPixelAlpha(unsharp_image,ClampToQuantum(pixel.alpha),q); - } + register ssize_t + i; + + for (i=0; i < (ssize_t) GetPixelChannels(image); i++) + { + MagickRealType + pixel; + + PixelChannel + channel; + + PixelTrait + traits, + unsharp_traits; + + traits=GetPixelChannelMapTraits(image,(PixelChannel) i); + channel=GetPixelChannelMapChannel(image,(PixelChannel) i); + unsharp_traits=GetPixelChannelMapTraits(unsharp_image,channel); + if ((traits == UndefinedPixelTrait) || + (unsharp_traits == UndefinedPixelTrait)) + continue; + if ((unsharp_traits & CopyPixelTrait) != 0) + { + q[channel]=p[i]; + continue; + } + pixel=p[i]-(MagickRealType) q[channel]; + if (fabs(2.0*pixel) < quantum_threshold) + pixel=(MagickRealType) p[i]; + else + pixel=(MagickRealType) p[i]+amount*pixel; + q[channel]=ClampToQuantum(pixel); + } p+=GetPixelChannels(image); q+=GetPixelChannels(unsharp_image); } -- 2.40.0