]> granicus.if.org Git - imagemagick/blobdiff - coders/stegano.c
(no commit message)
[imagemagick] / coders / stegano.c
index 8ced90402bd5c2398c106e0fa1ed9c4e2645a5a8..ac44518048924d686a6ec844a53a0b384e82d5c3 100644 (file)
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
 /*
   Include declarations.
 */
-#include "magick/studio.h"
-#include "magick/blob.h"
-#include "magick/blob-private.h"
-#include "magick/cache.h"
-#include "magick/colormap.h"
-#include "magick/constitute.h"
-#include "magick/exception.h"
-#include "magick/exception-private.h"
-#include "magick/image.h"
-#include "magick/image-private.h"
-#include "magick/list.h"
-#include "magick/magick.h"
-#include "magick/memory_.h"
-#include "magick/monitor.h"
-#include "magick/monitor-private.h"
-#include "magick/quantum-private.h"
-#include "magick/static.h"
-#include "magick/string_.h"
-#include "magick/module.h"
+#include "MagickCore/studio.h"
+#include "MagickCore/blob.h"
+#include "MagickCore/blob-private.h"
+#include "MagickCore/cache.h"
+#include "MagickCore/colormap.h"
+#include "MagickCore/constitute.h"
+#include "MagickCore/exception.h"
+#include "MagickCore/exception-private.h"
+#include "MagickCore/image.h"
+#include "MagickCore/image-private.h"
+#include "MagickCore/list.h"
+#include "MagickCore/magick.h"
+#include "MagickCore/memory_.h"
+#include "MagickCore/monitor.h"
+#include "MagickCore/monitor-private.h"
+#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/quantum-private.h"
+#include "MagickCore/static.h"
+#include "MagickCore/string_.h"
+#include "MagickCore/module.h"
 \f
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -100,9 +101,9 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
 {
 #define GetBit(alpha,i) MagickMin((((size_t) (alpha) >> (size_t) \
   (i)) & 0x01),16)
-#define SetBit(indexes,i,set) SetIndexPixelComponent(indexes,((set) != 0 ? \
-  (size_t) GetIndexPixelComponent(indexes) | (one << (size_t) (i)) : (size_t) \
-  GetIndexPixelComponent(indexes) & ~(one << (size_t) (i))))
+#define SetBit(i,set) SetPixelIndex(image,((set) != 0 ? \
+  (size_t) GetPixelIndex(image,q) | (one << (size_t) (i)) : \
+  (size_t) GetPixelIndex(image,q) & ~(one << (size_t) (i))),q)
 
   Image
     *image,
@@ -117,13 +118,10 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
   MagickBooleanType
     status;
 
-  PixelPacket
+  PixelInfo
     pixel;
 
-  register IndexPacket
-    *indexes;
-
-  register PixelPacket
+  register Quantum
     *q;
 
   register ssize_t
@@ -150,7 +148,7 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickSignature);
   one=1;
-  image=AcquireImage(image_info);
+  image=AcquireImage(image_info,exception);
   if ((image->columns == 0) || (image->rows == 0))
     ThrowReaderException(OptionError,"MustSpecifyImageSize");
   read_info=CloneImageInfo(image_info);
@@ -161,7 +159,7 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
   if (watermark == (Image *) NULL)
     return((Image *) NULL);
   watermark->depth=MAGICKCORE_QUANTUM_DEPTH;
-  if (AcquireImageColormap(image,MaxColormapSize) == MagickFalse)
+  if (AcquireImageColormap(image,MaxColormapSize,exception) == MagickFalse)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
   if (image_info->ping != MagickFalse)
     {
@@ -185,27 +183,27 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
       {
         if ((k/(ssize_t) watermark->columns) >= (ssize_t) watermark->rows)
           break;
-        (void) GetOneVirtualPixel(watermark,k % (ssize_t) watermark->columns,
-          k/(ssize_t) watermark->columns,&pixel,exception);
+        (void) GetOneVirtualPixelInfo(watermark,UndefinedVirtualPixelMethod,
+          k % (ssize_t) watermark->columns,k/(ssize_t) watermark->columns,
+          &pixel,exception);
         q=GetAuthenticPixels(image,x,y,1,1,exception);
-        if (q == (PixelPacket *) NULL)
+        if (q == (Quantum *) NULL)
           break;
-        indexes=GetAuthenticIndexQueue(image);
         switch (c)
         {
           case 0:
           {
-            SetBit(indexes,i,GetBit(pixel.red,j));
+            SetBit(i,GetBit(pixel.red,j));
             break;
           }
           case 1:
           {
-            SetBit(indexes,i,GetBit(pixel.green,j));
+            SetBit(i,GetBit(pixel.green,j));
             break;
           }
           case 2:
           {
-            SetBit(indexes,i,GetBit(pixel.blue,j));
+            SetBit(i,GetBit(pixel.blue,j));
             break;
           }
         }
@@ -226,7 +224,7 @@ static Image *ReadSTEGANOImage(const ImageInfo *image_info,
       break;
   }
   watermark=DestroyImage(watermark);
-  (void) SyncImage(image);
+  (void) SyncImage(image,exception);
   return(GetFirstImageInList(image));
 }
 \f