From: cristy Date: Sun, 28 Apr 2013 23:52:36 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~3786 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=72844f182b47d17dc2b4e9f1062ba434e5852fd6;p=imagemagick --- diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c index d2c4ad543..44d25206f 100644 --- a/MagickCore/colorspace.c +++ b/MagickCore/colorspace.c @@ -3165,7 +3165,7 @@ static MagickBooleanType TransformsRGBImage(Image *image, for (i=0; i <= (ssize_t) MaxMap; i++) { x_map[i].x=0.99999999999914679361f*(float) i; - y_map[i].x=(1.2188941887145875e-06f)*(float) i; + y_map[i].x=(-1.2188941887145875e-06f)*(float) i; z_map[i].x=0.5f*1.4019995886561440468f*(2.00f*(float) i-MaxMap); x_map[i].y=0.99999975910502514331f*(float) i; y_map[i].y=0.5f*(-0.34413567816504303521f)*(2.00f*(float) i-MaxMap); diff --git a/MagickCore/distort.c b/MagickCore/distort.c index d6ce4c458..0ab1c0cef 100644 --- a/MagickCore/distort.c +++ b/MagickCore/distort.c @@ -131,16 +131,6 @@ static void InvertPerspectiveCoefficients(const double *coeff, inverse[7]=determinant*(coeff[6]*coeff[1]-coeff[0]*coeff[7]); } -static inline double MagickRound(double x) -{ - /* - Round the fraction to nearest integer. - */ - if (x >= 0.0) - return((double) ((ssize_t) (x+0.5))); - return((double) ((ssize_t) (x-0.5))); -} - /* * Polynomial Term Defining Functions * @@ -378,6 +368,16 @@ MagickExport Image *AffineTransformImage(const Image *image, % outside other MagickCore library methods. */ +static inline double MagickRound(double x) +{ + /* + Round the fraction to nearest integer. + */ + if ((x-floor(x)) < (ceil(x)-x) + return(floor(x)); + return(ceil(x)); +} + static double *GenerateCoefficients(const Image *image, DistortImageMethod *method,const size_t number_arguments, const double *arguments,size_t number_values,ExceptionInfo *exception) diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c index 2ba74cec4..dd8b8b1ac 100644 --- a/MagickCore/quantize.c +++ b/MagickCore/quantize.c @@ -2337,14 +2337,14 @@ MagickExport void GetQuantizeInfo(QuantizeInfo *quantize_info) % */ -static inline ssize_t MagickRound(double x) +static inline double MagickRound(double x) { /* Round the fraction to nearest integer. */ - if (x >= 0.0) - return((ssize_t) (x+0.5)); - return((ssize_t) (x-0.5)); + if ((x-floor(x)) < (ceil(x)-x) + return(floor(x)); + return(ceil(x)); } MagickExport MagickBooleanType PosterizeImage(Image *image,const size_t levels, diff --git a/MagickCore/transform.c b/MagickCore/transform.c index ba0e8295f..94de5c44c 100644 --- a/MagickCore/transform.c +++ b/MagickCore/transform.c @@ -766,14 +766,14 @@ MagickExport Image *CropImage(const Image *image,const RectangleInfo *geometry, % */ -static inline ssize_t MagickRound(double x) +static inline double MagickRound(double x) { /* Round the fraction to nearest integer. */ - if (x >= 0.0) - return((ssize_t) (x+0.5)); - return((ssize_t) (x-0.5)); + if ((x-floor(x)) < (ceil(x)-x) + return(floor(x)); + return(ceil(x)); } MagickExport Image *CropImageToTiles(const Image *image,