From: cristy Date: Mon, 19 Sep 2011 17:02:13 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~6981 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ccd8a48285dc016bba46f712f53ca62f36dff07c;p=imagemagick --- diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c index 35df7593a..d57dd7f82 100644 --- a/MagickCore/annotate.c +++ b/MagickCore/annotate.c @@ -1296,7 +1296,7 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info, glyph.id=FT_Get_Char_Index(face,'?'); if ((glyph.id != 0) && (last_glyph.id != 0)) { - if (draw_info->kerning != 0.0) + if (fabs(draw_info->kerning) >= MagickEpsilon) origin.x+=(FT_Pos) (64.0*direction*draw_info->kerning); else if (FT_HAS_KERNING(face)) @@ -1322,13 +1322,13 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info, if (status != 0) continue; if ((p == draw_info->text) || (bounds.xMin < metrics->bounds.x1)) - metrics->bounds.x1=bounds.xMin; + metrics->bounds.x1=(MagickRealType) bounds.xMin; if ((p == draw_info->text) || (bounds.yMin < metrics->bounds.y1)) - metrics->bounds.y1=bounds.yMin; + metrics->bounds.y1=(MagickRealType) bounds.yMin; if ((p == draw_info->text) || (bounds.xMax > metrics->bounds.x2)) - metrics->bounds.x2=bounds.xMax; + metrics->bounds.x2=(MagickRealType) bounds.xMax; if ((p == draw_info->text) || (bounds.yMax > metrics->bounds.y2)) - metrics->bounds.y2=bounds.yMax; + metrics->bounds.y2=(MagickRealType) bounds.yMax; if (draw_info->render != MagickFalse) if ((draw_info->stroke.alpha != TransparentAlpha) || (draw_info->stroke_pattern != (Image *) NULL)) @@ -1451,14 +1451,14 @@ static MagickBooleanType RenderFreetype(Image *image,const DrawInfo *draw_info, } if ((bitmap->left+bitmap->bitmap.width) > metrics->width) metrics->width=bitmap->left+bitmap->bitmap.width; - if ((draw_info->interword_spacing != 0.0) && + if ((fabs(draw_info->interword_spacing) >= MagickEpsilon) && (IsUTFSpace(GetUTFCode(p)) != MagickFalse) && (IsUTFSpace(code) == MagickFalse)) origin.x+=(FT_Pos) (64.0*direction*draw_info->interword_spacing); else origin.x+=(FT_Pos) (direction*face->glyph->advance.x); - metrics->origin.x=origin.x; - metrics->origin.y=origin.y; + metrics->origin.x=(MagickRealType) origin.x; + metrics->origin.y=(MagickRealType) origin.y; if (last_glyph.id != 0) FT_Done_Glyph(last_glyph.image); last_glyph=glyph; @@ -1669,9 +1669,9 @@ static MagickBooleanType RenderPostscript(Image *image, /* Sample to compute bounding box. */ - identity=(draw_info->affine.sx == draw_info->affine.sy) && - (draw_info->affine.rx == 0.0) && (draw_info->affine.ry == 0.0) ? - MagickTrue : MagickFalse; + identity=(fabs(draw_info->affine.sx-draw_info->affine.sy) < MagickEpsilon) && + (fabs(draw_info->affine.rx) < MagickEpsilon) && + (fabs(draw_info->affine.ry) < MagickEpsilon) ? MagickTrue : MagickFalse; extent.x=0.0; extent.y=0.0; for (i=0; i <= (ssize_t) (strlen(draw_info->text)+2); i++) @@ -2039,12 +2039,13 @@ static MagickBooleanType RenderX11(Image *image,const DrawInfo *draw_info, */ width=annotate_info.width; height=annotate_info.height; - if ((draw_info->affine.rx != 0.0) || (draw_info->affine.ry != 0.0)) + if ((fabs(draw_info->affine.rx) >= MagickEpsilon) || + (fabs(draw_info->affine.ry) >= MagickEpsilon)) { - if (((draw_info->affine.sx-draw_info->affine.sy) == 0.0) && - ((draw_info->affine.rx+draw_info->affine.ry) == 0.0)) - annotate_info.degrees=(180.0/MagickPI)* - atan2(draw_info->affine.rx,draw_info->affine.sx); + if ((fabs(draw_info->affine.sx-draw_info->affine.sy) < MagickEpsilon) && + (fabs(draw_info->affine.rx+draw_info->affine.ry) < MagickEpsilon)) + annotate_info.degrees=(MagickRealType) ((180.0/MagickPI)* + atan2(draw_info->affine.rx,draw_info->affine.sx)); } (void) FormatLocaleString(annotate_info.geometry,MaxTextExtent, "%.20gx%.20g%+.20g%+.20g",(double) width,(double) height, diff --git a/MagickCore/colorspace-private.h b/MagickCore/colorspace-private.h index 479d7eeb3..98a9a9c2b 100644 --- a/MagickCore/colorspace-private.h +++ b/MagickCore/colorspace-private.h @@ -34,7 +34,9 @@ static inline void ConvertRGBToCMYK(PixelInfo *pixel) magenta, yellow; - if ((pixel->red == 0) && (pixel->green == 0) && (pixel->blue == 0)) + if ((fabs(pixel->red) < MagickEpsilon) && + (fabs(pixel->green) < MagickEpsilon) && + (fabs(pixel->blue) < MagickEpsilon)) { pixel->black=(MagickRealType) QuantumRange; return; diff --git a/MagickCore/composite-private.h b/MagickCore/composite-private.h index 745c61726..e2efff089 100644 --- a/MagickCore/composite-private.h +++ b/MagickCore/composite-private.h @@ -55,7 +55,7 @@ static inline void CompositePixelOver(const Image *image,const PixelPacket *p, /* Compose pixel p over pixel q with the given opacities. */ - if (alpha == TransparentAlpha) + if (fabs(alpha-TransparentAlpha) < MagickEpsilon) { if (composite != q) { @@ -102,7 +102,7 @@ static inline void CompositePixelInfoOver(const PixelInfo *p, /* Compose pixel p over pixel q with the given opacities. */ - if (alpha == OpaqueAlpha) + if (fabs(alpha-OpaqueAlpha) < MagickEpsilon) { *composite=(*p); return; diff --git a/MagickCore/quantum-private.h b/MagickCore/quantum-private.h index f248caaaf..1e6f2e11e 100644 --- a/MagickCore/quantum-private.h +++ b/MagickCore/quantum-private.h @@ -186,7 +186,7 @@ static inline void InitializeQuantumState(const QuantumInfo *quantum_info, quantum_state->minimum=quantum_info->minimum; quantum_state->scale=quantum_info->scale; quantum_state->inverse_scale=1.0; - if (quantum_state->scale != 0.0) + if (fabs(quantum_state->scale) >= MagickEpsilon) quantum_state->inverse_scale/=quantum_state->scale; quantum_state->pixel=0U; quantum_state->bits=0U; diff --git a/MagickCore/token-private.h b/MagickCore/token-private.h index 683a628a8..d22192496 100644 --- a/MagickCore/token-private.h +++ b/MagickCore/token-private.h @@ -53,6 +53,9 @@ static UTFInfo static inline unsigned char *ConvertLatin1ToUTF8(const unsigned char *content) { + int + c; + register const unsigned char *p; @@ -65,9 +68,6 @@ static inline unsigned char *ConvertLatin1ToUTF8(const unsigned char *content) unsigned char *utf8; - unsigned int - c; - length=0; for (p=content; *p != '\0'; p++) length+=(*p & 0x80) != 0 ? 2 : 1; @@ -81,11 +81,11 @@ static inline unsigned char *ConvertLatin1ToUTF8(const unsigned char *content) { c=(*p); if ((c & 0x80) == 0) - *q++=c; + *q++=(unsigned char) c; else { - *q++=0xc0 | ((c >> 6) & 0x3f); - *q++=0x80 | (c & 0x3f); + *q++=(unsigned char) (0xc0 | ((c >> 6) & 0x3f)); + *q++=(unsigned char) (0x80 | (c & 0x3f)); } } *q='\0';