diff --git a/coders/label.c b/coders/label.c
index c4f6860..e554809 100644
--- a/coders/label.c
+++ b/coders/label.c
@@ -150,7 +150,8 @@
(void) status;
width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);
height=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);
- if ((width > image->columns) && (height > image->rows))
+ if (((image->columns != 0) && (width > image->columns)) ||
+ ((image->rows != 0) && (height > image->rows)))
break;
draw_info->pointsize*=2.0;
}
@@ -166,12 +167,13 @@
status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);
height=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);
- if ((width <= image->columns) && (height <= image->rows))
+ if (((image->columns != 0) && (width <= image->columns)) ||
+ ((image->rows != 0) && (height <= image->rows)))
low=draw_info->pointsize+1.0;
else
high=draw_info->pointsize-1.0;
}
- for (draw_info->pointsize=(low+high)/2.0; (high-low) > 1.0; )
+ for (draw_info->pointsize=(low+high)/2.0; ; )
{
(void) FormatLocaleString(geometry,MaxTextExtent,"%+g%+g",
-metrics.bounds.x1,metrics.ascent);
@@ -180,7 +182,8 @@
status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
width=(size_t) floor(metrics.width+draw_info->stroke_width+0.5);
height=(size_t) floor(metrics.height+draw_info->stroke_width+0.5);
- if ((width <= image->columns) && (height <= image->rows))
+ if (((image->columns != 0) && (width <= image->columns)) ||
+ ((image->rows != 0) && (height <= image->rows)))
break;
draw_info->pointsize--;
}