]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Thu, 19 Feb 2015 15:50:41 +0000 (15:50 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Thu, 19 Feb 2015 15:50:41 +0000 (15:50 +0000)
coders/caption.c
coders/label.c

index 550c8cd0813681dfd35fa262b9d948a128f659c6..b4566d2f47ec2cbb77ca4bbaca4d93d94e2f4dc5 100644 (file)
@@ -167,7 +167,7 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info,
       (void) CloneString(&draw_info->text,text);
       text=DestroyString(text);
       (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-        -metrics.bounds.x1,metrics.ascent);
+        -metrics.bounds.x1,metrics.bounds.y2);
       if (draw_info->gravity == UndefinedGravity)
         (void) CloneString(&draw_info->geometry,geometry);
       status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
@@ -183,11 +183,11 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info,
       (void) CloneString(&draw_info->text,text);
       text=DestroyString(text);
       (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-        -metrics.bounds.x1,metrics.ascent);
+        -metrics.bounds.x1,metrics.bounds.y2);
       if (draw_info->gravity == UndefinedGravity)
         (void) CloneString(&draw_info->geometry,geometry);
       status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
-      image->rows=(size_t) ((i+1)*(metrics.ascent-metrics.descent+
+      image->rows=(size_t) ((i+1)*(metrics.bounds.y2-metrics.descent+
         draw_info->interline_spacing+draw_info->stroke_width)+0.5);
     }
   if (fabs(image_info->pointsize) < MagickEpsilon)
@@ -207,7 +207,7 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info,
         (void) CloneString(&draw_info->text,text);
         text=DestroyString(text);
         (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-          -metrics.bounds.x1,metrics.ascent);
+          -metrics.bounds.x1,metrics.bounds.y2);
         if (draw_info->gravity == UndefinedGravity)
           (void) CloneString(&draw_info->geometry,geometry);
         status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
@@ -233,7 +233,7 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info,
         (void) CloneString(&draw_info->text,text);
         text=DestroyString(text);
         (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-          -metrics.bounds.x1,metrics.ascent);
+          -metrics.bounds.x1,metrics.bounds.y2);
         if (draw_info->gravity == UndefinedGravity)
           (void) CloneString(&draw_info->geometry,geometry);
         status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
@@ -269,17 +269,20 @@ static Image *ReadCAPTIONImage(const ImageInfo *image_info,
   status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
   if ((draw_info->gravity != UndefinedGravity) &&
       (draw_info->direction != RightToLeftDirection))
-    image->page.x=(ssize_t) floor(metrics.bounds.x1-
-      draw_info->stroke_width/2.0+0.5);
+    {
+      image->page.x=(ssize_t) floor(metrics.bounds.x1-
+        draw_info->stroke_width/2.0+0.5);
+      image->page.y=(ssize_t) floor(-2-draw_info->stroke_width/2.0+0.5);
+    }
   else
     {
       (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-        -metrics.bounds.x1+draw_info->stroke_width/2.0,metrics.ascent+
+        -metrics.bounds.x1+draw_info->stroke_width/2.0,metrics.bounds.y2+
         draw_info->stroke_width/2.0);
       if (draw_info->direction == RightToLeftDirection)
         (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
           image->columns-(metrics.bounds.x2+draw_info->stroke_width/2.0),
-          metrics.ascent+draw_info->stroke_width/2.0);
+          metrics.bounds.y2+draw_info->stroke_width/2.0);
       draw_info->geometry=AcquireString(geometry);
     }
   status=AnnotateImage(image,draw_info,exception);
index 97043dfd642625b43ba67287b33b62800bd7f96d..6570ace76a44d84536c2490a0f9caccb4e2e38c2 100644 (file)
@@ -132,7 +132,7 @@ static Image *ReadLABELImage(const ImageInfo *image_info,
   draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);
   draw_info->text=ConstantString(label);
   metrics.width=0;
-  metrics.ascent=0.0;
+  metrics.bounds.y2=0.0;
   status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
   if ((image->columns == 0) && (image->rows == 0))
     {
@@ -153,7 +153,7 @@ static Image *ReadLABELImage(const ImageInfo *image_info,
         for ( ; ; draw_info->pointsize*=2.0)
         {
           (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-            -metrics.bounds.x1,metrics.ascent);
+            -metrics.bounds.x1,metrics.bounds.y2);
           if (draw_info->gravity == UndefinedGravity)
             (void) CloneString(&draw_info->geometry,geometry);
           status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
@@ -174,7 +174,7 @@ static Image *ReadLABELImage(const ImageInfo *image_info,
         {
           draw_info->pointsize=(low+high)/2.0;
           (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-            -metrics.bounds.x1,metrics.ascent);
+            -metrics.bounds.x1,metrics.bounds.y2);
           if (draw_info->gravity == UndefinedGravity)
             (void) CloneString(&draw_info->geometry,geometry);
           status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
@@ -207,7 +207,7 @@ static Image *ReadLABELImage(const ImageInfo *image_info,
   if (image->columns == 0)
     image->columns=(size_t) (draw_info->pointsize+draw_info->stroke_width+0.5);
   if (image->rows == 0)
-    image->rows=(size_t) (metrics.ascent-metrics.descent+
+    image->rows=(size_t) (metrics.bounds.y2-metrics.descent+
       draw_info->stroke_width+0.5);
   if (image->rows == 0)
     image->rows=(size_t) (draw_info->pointsize+draw_info->stroke_width+0.5);
@@ -216,17 +216,20 @@ static Image *ReadLABELImage(const ImageInfo *image_info,
     return(DestroyImageList(image));
   if ((draw_info->gravity != UndefinedGravity) &&
       (draw_info->direction != RightToLeftDirection))
-    image->page.x=(ssize_t) floor(metrics.bounds.x1-
-      draw_info->stroke_width/2.0+0.5);
+    {
+      image->page.x=(ssize_t) floor(metrics.bounds.x1-
+        draw_info->stroke_width/2.0+0.5);
+      image->page.y=(ssize_t) floor(-2-draw_info->stroke_width/2.0+0.5);
+    }
   else
     {
       (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-        -metrics.bounds.x1+draw_info->stroke_width/2.0,metrics.ascent+
+        -metrics.bounds.x1+draw_info->stroke_width/2.0,metrics.bounds.y2+
         draw_info->stroke_width/2.0);
       if (draw_info->direction == RightToLeftDirection)
         (void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
           image->columns-(metrics.bounds.x2+draw_info->stroke_width/2.0),
-          metrics.ascent+draw_info->stroke_width/2.0);
+          metrics.bounds.y2+draw_info->stroke_width/2.0);
       draw_info->geometry=AcquireString(geometry);
     }
   if (SetImageBackgroundColor(image,exception) == MagickFalse)