]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Mon, 19 Sep 2011 17:02:13 +0000 (17:02 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Mon, 19 Sep 2011 17:02:13 +0000 (17:02 +0000)
MagickCore/annotate.c
MagickCore/colorspace-private.h
MagickCore/composite-private.h
MagickCore/quantum-private.h
MagickCore/token-private.h

index 35df7593ad89c44561ef60f7bb3de786af577edb..d57dd7f82d7c826c11ace70cf5789a9ed0048754 100644 (file)
@@ -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,
index 479d7eeb324b0557560ce77354326cca3a084287..98a9a9c2b20c9613e864bd1202d1dbf5b0086389 100644 (file)
@@ -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;
index 745c61726032585d1e837d5d6086aecfb3b4274d..e2efff08927469a1c748fd10d9aee2edc1408cfb 100644 (file)
@@ -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;
index f248caaaf8dff8d89ea486ea186d005802773b26..1e6f2e11e5ec0a5f28e71ca64b86f77d7a87e2ad 100644 (file)
@@ -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;
index 683a628a8ce695cb7054cd2836c81b90198d5db4..d221924965c369b8ad5b491ca98f66181f22c18c 100644 (file)
@@ -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';