From: Cristy Date: Sun, 7 Jan 2018 01:44:33 +0000 (-0500) Subject: ... X-Git-Tag: 7.0.7-22~136 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aa413353e3dc86c56a44d23f1d1d4db67e0911ff;p=imagemagick ... --- diff --git a/MagickCore/geometry.c b/MagickCore/geometry.c index 63c7b924a..95a11d3e0 100644 --- a/MagickCore/geometry.c +++ b/MagickCore/geometry.c @@ -1258,15 +1258,18 @@ MagickExport MagickStatusType ParseGravityGeometry(const Image *image, (void) ParseGeometry(geometry,&geometry_info); geometry_ratio=geometry_info.rho; image_ratio=image->columns/(double) image->rows; - region_info->width=image->columns; - region_info->height=image->rows; if (geometry_ratio >= image_ratio) { - region_info->width=(size_t) floor((image->columns*geometry_ratio/ - image_ratio)+0.5); + region_info->width=image->columns; region_info->height=(size_t) floor((image->rows*image_ratio/ geometry_ratio)+0.5); } + else + { + region_info->width=(size_t) floor((image->columns*geometry_ratio/ + image_ratio)+0.5); + region_info->height=image->rows; + } } /* Adjust offset according to gravity setting. @@ -1395,14 +1398,17 @@ MagickExport MagickStatusType ParseMetaGeometry(const char *geometry,ssize_t *x, (void) ParseGeometry(geometry,&geometry_info); geometry_ratio=geometry_info.rho; image_ratio=former_width/(double) former_height; - *width=former_width; - *height=former_height; if (geometry_ratio >= image_ratio) { - *width=(size_t) floor((former_width*geometry_ratio/image_ratio)+0.5); + *width=former_width; *height=(size_t) floor((former_height*image_ratio/geometry_ratio)+ 0.5); } + else + { + *width=(size_t) floor((former_width*geometry_ratio/image_ratio)+0.5); + *height=former_height; + } former_width=(*width); former_height=(*height); }