]> granicus.if.org Git - imagemagick/blobdiff - coders/ps2.c
(no commit message)
[imagemagick] / coders / ps2.c
index 6ea1dc55c27f3b25054b0052fa83f991220981fa..7052f14aad40726e8d0fcd8a568156b9ab6ab1b6 100644 (file)
 %                      Write Postscript Level II Format                       %
 %                                                                             %
 %                              Software Design                                %
-%                                John Cristy                                  %
+%                                   Cristy                                    %
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2015 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  %
@@ -115,15 +115,15 @@ ModuleExport size_t RegisterPS2Image(void)
 
   entry=SetMagickInfo("EPS2");
   entry->encoder=(EncodeImageHandler *) WritePS2Image;
-  entry->adjoin=MagickFalse;
-  entry->seekable_stream=MagickTrue;
+  entry->flags^=CoderAdjoinFlag;
+  entry->flags|=CoderSeekableStreamFlag;
   entry->description=ConstantString("Level II Encapsulated PostScript");
   entry->mime_type=ConstantString("application/postscript");
   entry->module=ConstantString("PS2");
   (void) RegisterMagickInfo(entry);
   entry=SetMagickInfo("PS2");
   entry->encoder=(EncodeImageHandler *) WritePS2Image;
-  entry->seekable_stream=MagickTrue;
+  entry->flags|=CoderSeekableStreamFlag;
   entry->description=ConstantString("Level II PostScript");
   entry->mime_type=ConstantString("application/postscript");
   entry->module=ConstantString("PS2");
@@ -469,7 +469,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
-  compression=UndefinedCompression;
+  compression=image->compression;
   if (image_info->compression != UndefinedCompression)
     compression=image_info->compression;
   switch (compression)
@@ -612,6 +612,9 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
                 "%%%%Pages: %.20g\n",(double) GetImageListLength(image));
             (void) WriteBlobString(image,buffer);
           }
+        if (image->colorspace == CMYKColorspace)
+          (void) WriteBlobString(image,
+            "%%DocumentProcessColors: Cyan Magenta Yellow Black\n");
         (void) WriteBlobString(image,"%%EndComments\n");
         (void) WriteBlobString(image,"\n%%BeginDefaults\n");
         (void) WriteBlobString(image,"%%EndDefaults\n\n");
@@ -846,7 +849,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
       }
     else
       if ((image->storage_class == DirectClass) || (image->colors > 256) ||
-          (compression == JPEGCompression) || (image->alpha_trait == BlendPixelTrait))
+          (compression == JPEGCompression) || (image->alpha_trait != UndefinedPixelTrait))
         {
           (void) FormatLocaleString(buffer,MaxTextExtent,"%.20g %.20g\n0\n%d\n",
             (double) image->columns,(double) image->rows,(int)
@@ -896,7 +899,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
                   break;
                 for (x=0; x < (ssize_t) image->columns; x++)
                 {
-                  if ((image->alpha_trait == BlendPixelTrait) &&
+                  if ((image->alpha_trait != UndefinedPixelTrait) &&
                       (GetPixelAlpha(image,p) == (Quantum) TransparentAlpha))
                     {
                       *q++=ScaleQuantumToChar(QuantumRange);
@@ -950,7 +953,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
                   break;
                 for (x=0; x < (ssize_t) image->columns; x++)
                 {
-                  if ((image->alpha_trait == BlendPixelTrait) &&
+                  if ((image->alpha_trait != UndefinedPixelTrait) &&
                       (GetPixelAlpha(image,p) == (Quantum) TransparentAlpha))
                     {
                       Ascii85Encode(image,ScaleQuantumToChar((Quantum)