]> granicus.if.org Git - imagemagick/blobdiff - coders/ps.c
(no commit message)
[imagemagick] / coders / ps.c
index 0cb112f6e7640b899efcc4d24f86662b2939885a..fba33eca931ca29960fbbc0911c0204d1844a11b 100644 (file)
@@ -708,7 +708,7 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
         resolution.y/delta.y)-0.5);
     }
   (void) CloseBlob(image);
-  if (IssRGBColorspace(image_info->colorspace) != MagickFalse)
+  if (IssRGBCompatibleColorspace(image_info->colorspace) != MagickFalse)
     cmyk=MagickFalse;
   /*
     Create Ghostscript control file.
@@ -810,6 +810,8 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception)
         read_info->filename,exception);
       if (IsPostscriptRendered(read_info->filename) == MagickFalse)
         break;
+      read_info->blob=NULL;
+      read_info->length=0;
       next=ReadImage(read_info,exception);
       (void) RelinquishUniqueFileResource(read_info->filename);
       if (next == (Image *) NULL)
@@ -1443,11 +1445,8 @@ static MagickBooleanType WritePSImage(const ImageInfo *image_info,Image *image,
     /*
       Scale relative to dots-per-inch.
     */
-    if ((image_info->type == TrueColorType) ||
-        (IsImageGray(image,exception) == MagickFalse))
-      if ((IssRGBColorspace(image->colorspace) == MagickFalse) &&
-          (image->colorspace != CMYKColorspace))
-        (void) TransformImageColorspace(image,sRGBColorspace,exception);
+    if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
+      (void) TransformImageColorspace(image,sRGBColorspace,exception);
     delta.x=DefaultResolution;
     delta.y=DefaultResolution;
     resolution.x=image->resolution.x;