]> granicus.if.org Git - imagemagick/blobdiff - coders/pcd.c
(no commit message)
[imagemagick] / coders / pcd.c
index d42b60d5383ca1019c5d8cda69df9bb364b232e7..0aa96b8db73ceace7ca3c7c9a2ae9afef26a994b 100644 (file)
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2012 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  %
@@ -49,6 +49,7 @@
 #include "MagickCore/colorspace-private.h"
 #include "MagickCore/constitute.h"
 #include "MagickCore/decorate.h"
+#include "MagickCore/distort.h"
 #include "MagickCore/exception.h"
 #include "MagickCore/exception-private.h"
 #include "MagickCore/gem.h"
@@ -63,7 +64,6 @@
 #include "MagickCore/montage.h"
 #include "MagickCore/pixel-accessor.h"
 #include "MagickCore/resize.h"
-#include "MagickCore/shear.h"
 #include "MagickCore/quantum-private.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
@@ -129,8 +129,6 @@ static MagickBooleanType DecodeImage(Image *image,unsigned char *luma,
     bits+=8; \
     p++; \
   } \
-  if (EOFBlob(image) != MagickFalse) \
-    break; \
 }
 
   typedef struct PCDTable
@@ -683,7 +681,7 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception)
         }
         image->colorspace=YCCColorspace;
         if (LocaleCompare(image_info->magick,"PCDS") == 0)
-          image->colorspace=sRGBColorspace;
+          SetImageColorspace(image,sRGBColorspace,exception);
         if (j < (ssize_t) number_images)
           {
             /*
@@ -837,7 +835,7 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception)
   image->gamma=1.000f/2.200f;
   image->colorspace=YCCColorspace;
   if (LocaleCompare(image_info->magick,"PCDS") == 0)
-    image->colorspace=sRGBColorspace;
+    SetImageColorspace(image,sRGBColorspace,exception);
   return(GetFirstImageInList(image));
 }
 \f
@@ -983,7 +981,7 @@ static MagickBooleanType WritePCDTile(Image *image,const char *page_geometry,
   if ((geometry.height % 2) != 0)
     geometry.height--;
   tile_image=ResizeImage(image,geometry.width,geometry.height,TriangleFilter,
-    1.0,exception);
+    exception);
   if (tile_image == (Image *) NULL)
     return(MagickFalse);
   flags=ParseGeometry(page_geometry,&geometry_info);
@@ -1013,10 +1011,10 @@ static MagickBooleanType WritePCDTile(Image *image,const char *page_geometry,
       tile_image=bordered_image;
     }
   (void) TransformImage(&tile_image,(char *) NULL,tile_geometry,exception);
-  if (IsRGBColorspace(image->colorspace) == MagickFalse)
+  if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
     (void) TransformImageColorspace(tile_image,YCCColorspace,exception);
   downsample_image=ResizeImage(tile_image,tile_image->columns/2,
-    tile_image->rows/2,TriangleFilter,1.0,exception);
+    tile_image->rows/2,TriangleFilter,exception);
   if (downsample_image == (Image *) NULL)
     return(MagickFalse);
   /*
@@ -1101,8 +1099,8 @@ static MagickBooleanType WritePCDImage(const ImageInfo *image_info,Image *image,
   status=OpenBlob(image_info,pcd_image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
-  if (IsRGBColorspace(image->colorspace) == MagickFalse)
-    (void) TransformImageColorspace(pcd_image,RGBColorspace,exception);
+  if (IssRGBCompatibleColorspace(pcd_image->colorspace) == MagickFalse)
+    (void) TransformImageColorspace(pcd_image,sRGBColorspace,exception);
   /*
     Write PCD image header.
   */