]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/signature.c
(no commit message)
[imagemagick] / MagickCore / signature.c
index 43380d873e3eea6699bc38208954cd7528439f51..31ddd1c5bbed3f0a98f72f3f32517421dbf1e4e8 100644 (file)
@@ -506,7 +506,7 @@ MagickExport MagickBooleanType SignatureImage(Image *image,
   signature=AcquireStringInfo(image->columns*GetPixelChannels(image)*
     sizeof(pixel));
   pixels=GetStringInfoDatum(signature);
-  image_view=AcquireCacheView(image);
+  image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
     register ssize_t
@@ -524,6 +524,11 @@ MagickExport MagickBooleanType SignatureImage(Image *image,
       register ssize_t
         i;
 
+      if (GetPixelMask(image,p) != 0)
+        {
+          p+=GetPixelChannels(image);
+          continue;
+        }
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
       {
         PixelChannel
@@ -539,8 +544,6 @@ MagickExport MagickBooleanType SignatureImage(Image *image,
         traits=GetPixelChannelMapTraits(image,channel);
         if (traits == UndefinedPixelTrait)
           continue;
-        if ((traits & UpdatePixelTrait) == 0)
-          continue;
         pixel=QuantumScale*p[i];
         for (j=0; j < (ssize_t) sizeof(pixel); j++)
           *q++=(unsigned char) (&pixel)[j];