如何使用Image Magick根据图像宽度自动文本换行标签?

时间:2017-01-22 03:29:26

标签: image imagemagick imagemagick-convert

我一直在尝试使用ImageMagick注释图像,这适用于适合输入图像宽度的短文本。例如,要在图像中包含标题“The Apollo Rocket Launch”(例如rocket.png),我使用下面的代码:

convert rocket.png -background Khaki  \
-font Helvetica -pointsize 30 label:'The Apollo Rocket Launch' \
+swap -gravity Center -append output.png";

结果图片:

enter image description here

但是,如果标题长于图像的宽度,则ImageMagick会添加额外的宽度以适合文本(没有任何填充),如下图所示:

enter image description here

我想在考虑输入图像的宽度后将文本换行到下一行。一种选择是在文本中手动输入\ n字符,ImageMagick将自动输入到下一行。但我希望它根据图像宽度自动调整(响应)而不使用\ n字符。这可能在ImageMagick中吗?

1 个答案:

答案 0 :(得分:1)

我找到了答案。只有caption能够自动换行。 This link详细说明了这一点。我只需使用caption而不是label来修改代码。通过指定-size,标题的宽度限制为指定的尺寸。这里我指定宽度530px并且不指定高度,它将自动调整。我还在-gravity Center之前指定caption,以便文本自动居中:

convert rocket.png -background Khaki  -size 530x \
-font Helvetica -pointsize 30 -gravity Center \
caption:'The Apollo Rocket Launch- A Mission Accomplished' \
+swap -gravity Center -append output.png

结果:

enter image description here