From: Cristy Date: Sun, 27 Oct 2019 16:55:09 +0000 (-0400) Subject: https://github.com/ImageMagick/ImageMagick/issues/1763 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7cabb3014e971c603cce0302dbb35ac11738f94c;p=imagemagick https://github.com/ImageMagick/ImageMagick/issues/1763 --- diff --git a/coders/pdf.c b/coders/pdf.c index 3a4a953bf..55fff5e5f 100644 --- a/coders/pdf.c +++ b/coders/pdf.c @@ -468,10 +468,10 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception) (void) ParseAbsoluteGeometry(PSPageGeometry,&page); if (image_info->page != (char *) NULL) (void) ParseAbsoluteGeometry(image_info->page,&page); - 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.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)); /* Determine page geometry from the PDF media box. */ @@ -487,10 +487,10 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception) pdf_info.bounds.x2-pdf_info.bounds.x1,pdf_info.bounds.y2- pdf_info.bounds.y1,pdf_info.bounds.x1,pdf_info.bounds.y1); (void) SetImageProperty(image,"pdf:HiResBoundingBox",geometry,exception); - page.width=(size_t) ceil((double) ((pdf_info.bounds.x2- - pdf_info.bounds.x1)*image->resolution.x/delta.x)-0.5); - page.height=(size_t) ceil((double) ((pdf_info.bounds.y2- - pdf_info.bounds.y1)*image->resolution.y/delta.y)-0.5); + page.width=(size_t) ((ssize_t) ceil((double) ((pdf_info.bounds.x2- + pdf_info.bounds.x1)*image->resolution.x/delta.x)-0.5)); + page.height=(size_t) ((ssize_t) ceil((double) ((pdf_info.bounds.y2- + pdf_info.bounds.y1)*image->resolution.y/delta.y)-0.5)); } fitPage=MagickFalse; option=GetImageOption(image_info,"pdf:fit-page"); @@ -511,10 +511,10 @@ static Image *ReadPDFImage(const ImageInfo *image_info,ExceptionInfo *exception) image=DestroyImage(image); return((Image *) NULL); } - 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.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)); fitPage=MagickTrue; } if ((fabs(pdf_info.angle) == 90.0) || (fabs(pdf_info.angle) == 270.0)) diff --git a/coders/ps.c b/coders/ps.c index 3a4e327cf..4a0ec95ce 100644 --- a/coders/ps.c +++ b/coders/ps.c @@ -610,8 +610,10 @@ 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) ceil((double) (page.width*resolution.x/delta.x)-0.5); - page.height=(size_t) ceil((double) (page.height*resolution.y/delta.y)-0.5); + 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)); /* Determine page geometry from the Postscript bounding box. */ @@ -627,10 +629,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) ceil((double) ((info.bounds.x2-info.bounds.x1)* - resolution.x/delta.x)); - page.height=(size_t) ceil((double) ((info.bounds.y2-info.bounds.y1)* - resolution.y/delta.y)); + 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)); } fitPage=MagickFalse; option=GetImageOption(image_info,"eps:fit-page"); @@ -650,10 +652,10 @@ static Image *ReadPSImage(const ImageInfo *image_info,ExceptionInfo *exception) image=DestroyImage(image); return((Image *) NULL); } - 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.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_geometry=DestroyString(page_geometry); fitPage=MagickTrue; }