]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/compress.c
(no commit message)
[imagemagick] / MagickCore / compress.c
index 3de4ae6e7eebab24ec33630f859db51f879706af..0a22a0cae1e049a10507497c005b2c23aae97f26 100644 (file)
 %             MagickCore Image Compression/Decompression Methods              %
 %                                                                             %
 %                           Software Design                                   %
-%                             John Cristy                                     %
+%                                Cristy                                       %
 %                              May  1993                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2014 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  %
@@ -41,6 +41,7 @@
   Include declarations.
 */
 #include "MagickCore/studio.h"
+#include "MagickCore/attribute.h"
 #include "MagickCore/blob.h"
 #include "MagickCore/blob-private.h"
 #include "MagickCore/color-private.h"
 #include "MagickCore/pixel-accessor.h"
 #include "MagickCore/resource_.h"
 #include "MagickCore/string_.h"
-#if defined(MAGICKCORE_TIFF_DELEGATE)
-#if defined(MAGICKCORE_HAVE_TIFFCONF_H)
-#include "tiffconf.h"
-#endif
-#include "tiffio.h"
-#define CCITTParam  "-1"
-#else
-#define CCITTParam  "0"
-#endif
 #if defined(MAGICKCORE_ZLIB_DELEGATE)
 #include "zlib.h"
 #endif
@@ -701,8 +693,10 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
 
 #define OutputBit(count)  \
 {  \
+DisableMSCWarning(4127) \
   if (count > 0)  \
     byte=byte | bit;  \
+RestoreMSCWarning \
   bit>>=1;  \
   if ((int) (bit & 0xff) == 0)   \
     {  \
@@ -805,7 +799,7 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
     for (x=0; x < (ssize_t) huffman_image->columns; x++)
     {
       *q++=(unsigned char) (GetPixelIntensity(huffman_image,p) >=
-        ((MagickRealType) QuantumRange/2.0) ? 0 : 1);
+        ((double) QuantumRange/2.0) ? 0 : 1);
       p+=GetPixelChannels(huffman_image);
     }
     /*
@@ -913,7 +907,7 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
 %  The format of the LZWEncodeImage method is:
 %
 %      MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
-%        unsigned char *pixels,ExceptionInfo *exception)
+%        unsigned char *restrict pixels,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -928,7 +922,7 @@ MagickExport MagickBooleanType HuffmanEncodeImage(const ImageInfo *image_info,
 %
 */
 MagickExport MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
-  unsigned char *pixels,ExceptionInfo *exception)
+  unsigned char *restrict pixels,ExceptionInfo *exception)
 {
 #define LZWClr  256UL  /* Clear Table Marker */
 #define LZWEod  257UL  /* End of Data marker */
@@ -976,6 +970,8 @@ MagickExport MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(pixels != (unsigned char *) NULL);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickSignature);
   table=(TableType *) AcquireQuantumMemory(1UL << 12,sizeof(*table));
   if (table == (TableType *) NULL)
     return(MagickFalse);
@@ -1077,7 +1073,7 @@ MagickExport MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
 %  The format of the PackbitsEncodeImage method is:
 %
 %      MagickBooleanType PackbitsEncodeImage(Image *image,const size_t length,
-%        unsigned char *pixels)
+%        unsigned char *restrict pixels)
 %
 %  A description of each parameter follows:
 %
@@ -1090,7 +1086,7 @@ MagickExport MagickBooleanType LZWEncodeImage(Image *image,const size_t length,
 %
 */
 MagickExport MagickBooleanType PackbitsEncodeImage(Image *image,
-  const size_t length,unsigned char *pixels,ExceptionInfo *exception)
+  const size_t length,unsigned char *restrict pixels,ExceptionInfo *exception)
 {
   int
     count;
@@ -1212,7 +1208,7 @@ MagickExport MagickBooleanType PackbitsEncodeImage(Image *image,
 %  The format of the ZLIBEncodeImage method is:
 %
 %      MagickBooleanType ZLIBEncodeImage(Image *image,const size_t length,
-%        unsigned char *pixels,ExceptionInfo *exception)
+%        unsigned char *restrict pixels,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -1242,7 +1238,7 @@ static void RelinquishZIPMemory(voidpf context,voidpf memory)
 }
 
 MagickExport MagickBooleanType ZLIBEncodeImage(Image *image,const size_t length,
-  unsigned char *pixels,ExceptionInfo *exception)
+  unsigned char *restrict pixels,ExceptionInfo *exception)
 {
   int
     status;
@@ -1305,7 +1301,7 @@ MagickExport MagickBooleanType ZLIBEncodeImage(Image *image,
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   (void) ThrowMagickException(exception,GetMagickModule(),MissingDelegateError,
-    "DelegateLibrarySupportNotBuiltIn","`%s' (ZIP)",image->filename);
+    "DelegateLibrarySupportNotBuiltIn","'%s' (ZIP)",image->filename);
   return(MagickFalse);
 }
 #endif