+2010-09-12 6.6.4-6 Cristy <quetzlzacatenango@image...>
+ * Do not break words if caption size is absolute (reference
+ http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=17123).
+
2010-09-20 6.6.4-5 Nicolas Robidoux <nicolas.robidoux@gmail...>
* Modified "magick/resize.c" so that MagickPIL is a MagickRealType number.
Some computations were needlessly done in long double precision because
for ( ; ; )
{
text=AcquireString(caption);
- i=FormatMagickCaption(image,draw_info,&metrics,&text);
+ i=FormatMagickCaption(image,draw_info,MagickFalse,&metrics,&text);
(void) CloneString(&draw_info->text,text);
text=DestroyString(text);
(void) FormatMagickString(geometry,MaxTextExtent,"%+g%+g",
for ( ; ; )
{
text=AcquireString(caption);
- i=FormatMagickCaption(image,draw_info,&metrics,&text);
+ i=FormatMagickCaption(image,draw_info,MagickFalse,&metrics,&text);
(void) CloneString(&draw_info->text,text);
text=DestroyString(text);
(void) FormatMagickString(geometry,MaxTextExtent,"%+g%+g",
}
draw_info->pointsize--;
}
- i=FormatMagickCaption(image,draw_info,&metrics,&caption);
+ i=FormatMagickCaption(image,draw_info,MagickTrue,&metrics,&caption);
if (image->rows == 0)
image->rows=(size_t) ((i+1)*(metrics.ascent-metrics.descent+
draw_info->stroke_width)+0.5);
% The format of the FormatMagickCaption method is:
%
% ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info,
-% TypeMetric *metrics,char **caption)
+% const MagickBooleanType split,TypeMetric *metrics,char **caption)
%
% A description of each parameter follows.
%
% o image: The image.
%
-% o caption: the caption.
-%
% o draw_info: the draw info.
%
+% o split: when no convenient line breaks-- insert newline.
+%
% o metrics: Return the font metrics in this structure.
%
+% o caption: the caption.
+%
*/
MagickExport ssize_t FormatMagickCaption(Image *image,DrawInfo *draw_info,
- TypeMetric *metrics,char **caption)
+ const MagickBooleanType split,TypeMetric *metrics,char **caption)
{
MagickBooleanType
status;
p=s;
}
else
- {
- char
- *target;
+ if (split != MagickFalse)
+ {
+ char
+ *target;
- ssize_t
- n;
+ ssize_t
+ n;
- /*
- No convenient line breaks-- insert newline.
- */
- target=AcquireString(*caption);
- n=p-(*caption);
- CopyMagickString(target,*caption,n+1);
- ConcatenateMagickString(target,"\n",strlen(*caption)+1);
- ConcatenateMagickString(target,p,strlen(*caption)+2);
- (void) DestroyString(*caption);
- *caption=target;
- p=(*caption)+n;
- }
+ /*
+ No convenient line breaks-- insert newline.
+ */
+ target=AcquireString(*caption);
+ n=p-(*caption);
+ CopyMagickString(target,*caption,n+1);
+ ConcatenateMagickString(target,"\n",strlen(*caption)+1);
+ ConcatenateMagickString(target,p,strlen(*caption)+2);
+ (void) DestroyString(*caption);
+ *caption=target;
+ p=(*caption)+n;
+ }
s=(char *) NULL;
q=draw_info->text;
}
caption=InterpretImageProperties((ImageInfo *) NULL,(Image *) image,
value);
(void) CloneString(&annotate_info->text,caption);
- count=FormatMagickCaption(caption_image,annotate_info,&metrics,&caption);
+ count=FormatMagickCaption(caption_image,annotate_info,MagickTrue,&metrics,
+ &caption);
status=SetImageExtent(caption_image,image->columns,(size_t)
((count+1)*(metrics.ascent-metrics.descent)+0.5));
if (status == MagickFalse)