diff options
Diffstat (limited to 'coders/ps.c')
-rw-r--r-- | coders/ps.c | 47 |
1 files changed, 16 insertions, 31 deletions
diff --git a/coders/ps.c b/coders/ps.c index 8d0c362b3..50aef44eb 100644 --- a/coders/ps.c +++ b/coders/ps.c @@ -17,7 +17,7 @@ % July 1992 % % % % % -% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization % +% Copyright 1999-2019 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 % @@ -73,7 +73,6 @@ #include "MagickCore/quantum-private.h" #include "MagickCore/static.h" #include "MagickCore/string_.h" -#include "MagickCore/string-private.h" #include "MagickCore/timer-private.h" #include "MagickCore/token.h" #include "MagickCore/transform.h" @@ -207,7 +206,7 @@ static void ReadPSInfo(const ImageInfo *image_info,Image *image, { #define BeginDocument "BeginDocument:" #define EndDocument "EndDocument:" -#define PostscriptLevel "PS-" +#define PostscriptLevel "!PS-" #define ImageData "ImageData:" #define DocumentProcessColors "DocumentProcessColors:" #define CMYKCustomColor "CMYKCustomColor:" @@ -229,7 +228,6 @@ static void ReadPSInfo(const ImageInfo *image_info,Image *image, c; MagickBooleanType - new_line, skip; MagickByteBuffer @@ -291,7 +289,6 @@ static void ReadPSInfo(const ImageInfo *image_info,Image *image, *version='\0'; spotcolor=0; skip=MagickFalse; - new_line=MagickTrue; (void) memset(&buffer,0,sizeof(buffer)); buffer.image=image; for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer)) @@ -305,18 +302,8 @@ static void ReadPSInfo(const ImageInfo *image_info,Image *image, } case '\n': case '\r': - new_line=MagickTrue; - continue; case '%': - { - if (new_line == MagickFalse) - continue; - new_line=MagickFalse; - c=ReadMagickByteBuffer(&buffer); - if ((c == '%') || (c == '!')) - break; - continue; - } + break; default: continue; } @@ -353,9 +340,9 @@ static void ReadPSInfo(const ImageInfo *image_info,Image *image, if (CompareMagickByteBuffer(&buffer,DocumentProcessColors,length) != MagickFalse) { p=GetMagickByteBufferDatum(&buffer); - if ((StringLocateSubstring(p,"Cyan") != (char *) NULL) || - (StringLocateSubstring(p,"Magenta") != (char *) NULL) || - (StringLocateSubstring(p,"Yellow") != (char *) NULL)) + if ((GlobExpression(p,"*Cyan*",MagickTrue) != MagickFalse) || + (GlobExpression(p,"*Magenta*",MagickTrue) != MagickFalse) || + (GlobExpression(p,"*Yellow*",MagickTrue) != MagickFalse)) ps_info->cmyk=MagickTrue; } if (CompareMagickByteBuffer(&buffer,CMYKCustomColor,strlen(CMYKCustomColor)) != MagickFalse) @@ -623,10 +610,8 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception) if (image_info->page != (char *) NULL) (void) ParseAbsoluteGeometry(image_info->page,&page); resolution=image->resolution; - page.width=(size_t) ((ssize_t) ceil((double) (page.width*resolution.x/ - delta.x)-0.5)); - page.height=(size_t) ((ssize_t) ceil((double) (page.height*resolution.y/ - delta.y)-0.5)); + page.width=(size_t) ceil((double) (page.width*resolution.x/delta.x)-0.5); + page.height=(size_t) ceil((double) (page.height*resolution.y/delta.y)-0.5); /* Determine page geometry from the Postscript bounding box. */ @@ -642,10 +627,10 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception) info.bounds.x2-info.bounds.x1,info.bounds.y2-info.bounds.y1, info.bounds.x1,info.bounds.y1); (void) SetImageProperty(image,"ps:HiResBoundingBox",geometry,exception); - page.width=(size_t) ((ssize_t) ceil((double) ((info.bounds.x2- - info.bounds.x1)*resolution.x/delta.x)-0.5)); - page.height=(size_t) ((ssize_t) ceil((double) ((info.bounds.y2- - info.bounds.y1)*resolution.y/delta.y)-0.5)); + page.width=(size_t) ceil((double) ((info.bounds.x2-info.bounds.x1)* + resolution.x/delta.x)-0.5); + page.height=(size_t) ceil((double) ((info.bounds.y2-info.bounds.y1)* + resolution.y/delta.y)-0.5); } fitPage=MagickFalse; option=GetImageOption(image_info,"eps:fit-page"); @@ -665,10 +650,10 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception) image=DestroyImage(image); return((Image *) NULL); } - page.width=(size_t) ((ssize_t) ceil((double) (page.width* - image->resolution.x/delta.x)-0.5)); - page.height=(size_t) ((ssize_t) ceil((double) (page.height* - image->resolution.y/delta.y) -0.5)); + page.width=(size_t) ceil((double) (page.width*image->resolution.x/delta.x) + -0.5); + page.height=(size_t) ceil((double) (page.height*image->resolution.y/ + delta.y) -0.5); page_geometry=DestroyString(page_geometry); fitPage=MagickTrue; } |