我一直在尝试使用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";
结果图片:
但是,如果标题长于图像的宽度,则ImageMagick会添加额外的宽度以适合文本(没有任何填充),如下图所示:
我想在考虑输入图像的宽度后将文本换行到下一行。一种选择是在文本中手动输入\ n字符,ImageMagick将自动输入到下一行。但我希望它根据图像宽度自动调整(响应)而不使用\ n字符。这可能在ImageMagick中吗?
答案 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
结果: