]> granicus.if.org Git - imagemagick/blobdiff - coders/stegano.c
(no commit message)
[imagemagick] / coders / stegano.c
index e87e5355755725f861a167ae264272845fa12833..7a2ac17208e683c5843f60bd965162da6dbe566b 100644 (file)
@@ -101,8 +101,8 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
 #define GetBit(alpha,i) MagickMin((((size_t) (alpha) >> (size_t) \
   (i)) & 0x01),16)
 #define SetBit(alpha,i,set) (alpha)=(IndexPacket) ((set) != 0 ? \
-  (size_t) (alpha) | (1UL << (size_t) (i)) : (size_t) \
-  (alpha) & ~(1UL << (size_t) (i)))
+  (size_t) (alpha) | (one << (size_t) (i)) : (size_t) \
+  (alpha) & ~(one << (size_t) (i)))
 
   Image
     *image,
@@ -111,12 +111,8 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
   ImageInfo
     *read_info;
 
-  ssize_t
-    c,
-    i,
-    j,
-    k,
-    y;
+  int
+    c;
 
   MagickBooleanType
     status;
@@ -127,14 +123,21 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
   register IndexPacket
     *indexes;
 
-  register ssize_t
-    x;
-
   register PixelPacket
     *q;
 
+  register ssize_t
+    x;
+
   size_t
-    depth;
+    depth,
+    one;
+
+  ssize_t
+    i,
+    j,
+    k,
+    y;
 
   /*
     Initialize Image structure.
@@ -146,6 +149,7 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
       image_info->filename);
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickSignature);
+  one=1;
   image=AcquireImage(image_info);
   if ((image->columns == 0) || (image->rows == 0))
     ThrowReaderException(OptionError,"MustSpecifyImageSize");
@@ -170,14 +174,14 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
   c=0;
   i=0;
   j=0;
-  i=MAGICKCORE_QUANTUM_DEPTH-1;
-  depth=MAGICKCORE_QUANTUM_DEPTH;
+  i=(ssize_t) (watermark->depth-1);
+  depth=watermark->depth;
   for (k=image->offset; (i >= 0) && (j < (ssize_t) depth); i--)
   {
     for (y=0; (y < (ssize_t) image->rows) && (j < (ssize_t) depth); y++)
     {
       x=0;
-      for (; (x < (ssize_t) image->columns) && (j < (ssize_t) depth); x++)
+      for ( ; (x < (ssize_t) image->columns) && (j < (ssize_t) depth); x++)
       {
         if ((k/(ssize_t) watermark->columns) >= (ssize_t) watermark->rows)
           break;
@@ -217,7 +221,7 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
           j++;
       }
     }
-    status=SetImageProgress(image,LoadImagesTag,i,depth);
+    status=SetImageProgress(image,LoadImagesTag,(MagickOffsetType) i,depth);
     if (status == MagickFalse)
       break;
   }
@@ -256,7 +260,7 @@ ModuleExport size_t RegisterSTEGANOImage(void)
 
   entry=SetMagickInfo("STEGANO");
   entry->decoder=(DecodeImageHandler *) ReadSTEGANOImage;
-  entry->format_type=ExplicitFormatType;
+  entry->format_type=ImplicitFormatType;
   entry->description=ConstantString("Steganographic image");
   entry->module=ConstantString("STEGANO");
   (void) RegisterMagickInfo(entry);