为什么 "caption:" 包含在呈现的字符串中而不是触发 caption-like 行为?

Why is "caption:" being included in the rendered string instead of triggering caption-like behavior?

我正在努力在 Kindle 封面上填充一些文本。目前 convert 似乎将 caption: 作为我呈现的文本的开头。目前的调用如下:

convert kindle-cover.jpg -font "Georgia" -pointsize 150 -size 320x -gravity South -annotate +0+100 caption:'C.J.S. Hayward' workbench.jpg

根据需要,文本在图像底部附近居中,字体大小也不完美。但是,我尝试了几次调用,如 caption:-caption 等,但我似乎没有得到 caption-like 行为。

虽然与封面上的作者姓名无关,但我希望允许显示优雅 caption-like 行为的标题,包括软包装和动态调整大小(如果用户输入的标题需要包装)。

我可以/应该做什么不同的事情来获得标题,而不是标签,行为?

谢谢,

--更新-- @Bonzo 建议我提供我的 ImageMagick 版本。版本是:

Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-07-31 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib

机器是 运行 当前版本 Linux Mint。

您不应在 ImageMagick 的同一命令行中同时使用 -annotate 和 caption:。尝试使用一个或另一个。例如,这里有 3 种不同的方法:-annnotate、label: 和 caption: 字体较小。 - 注释直接写在图像上。 label: 和 caption: 都创建了自己的单独图像,需要将其合成到原始图像上。

convert kindle-cover.jpg -font "Georgia" -pointsize 72 -gravity south -annotate +0+100 'C.J.S. Hayward' workbench.jpg

convert kindle-cover.jpg \( -size 320x -background none -font "Georgia" -gravity south label:'C.J.S. Hayward' \) -gravity south -geometry +0+100 -compose over -composite workbench.jpg

convert kindle-cover.jpg \( -size 320x -pointsize 72 -background none -font "Georgia" -gravity south caption:'C.J.S. Hayward' \) -gravity south -geometry +0+100 -compose over -composite workbench.jpg


编辑:后者会换行,但前两个不会。所以你需要将 -size 320x 设置为你想要的宽度。正如 bonzo 所说,在 IM 6 中,您需要测试输入图像大小并指定您要使用的图像的某个百分比。例如,在 IM 6 中,您必须以这种方式 运行。假设您希望文本宽度为图像宽度的 1/3。在 unix 语法中,你会这样做:

ww=`convert kindle-cover.jpg -format "%[fx:w/3]" info:`

convert kindle-cover.jpg \( -size ${ww}x -pointsize 72 -background none -font "Georgia" -gravity south caption:'C.J.S. Hayward' \) -gravity south -geometry +0+100 -compose over -composite workbench.jpg


在 IM 7 中,您可以这样做

magick kindle-cover.jpg \( -size "%[fx:w/3]x" -pointsize 72 -background none -font "Georgia" -gravity south caption:'C.J.S. Hayward' \) -gravity south -geometry +0+100 -compose over -composite workbench.jpg