使用ImageMagick或类似的命令行工具将图像放置在带有标题的页面上

使用ImageMagick或类似的命令行工具将图像放置在带有标题的页面上,image,command-line,imagemagick,Image,Command Line,Imagemagick,我有一幅风景画foo.png,我想把它放在这样一个页面上: +--------------+ | | | title text | | | | +--------+ | | |foo.png | | | | | | | +--------+ | | | | | +--------------+ 我已将图像正确定位在页面上: convert-背景白色-页码字母

我有一幅风景画
foo.png
,我想把它放在这样一个页面上:

+--------------+
|              |
|  title text  |
|              |
|  +--------+  |
|  |foo.png |  |
|  |        |  |
|  +--------+  |
|              |
|              |
+--------------+
我已将图像正确定位在页面上:

convert-背景白色-页码字母+20+300-调整572x572 foo.png的大小-图层展平布局.png

但是,我找不到正确使用
-annotate
-draw text
label:
来将
标题文本显示在正确的位置


最终的目标是为大约100幅图像编写脚本,因此我需要一个命令行解决方案。

看起来您最好利用ImageMagick的“-gravity”设置。这可能不是您想要的,但是请注意“-gravity”是如何使用“-composite”定位覆盖图像的,而文本是使用“-annotate”定位的,使用这样的命令

convert foo.png -resize 572x572 \
   -size 612x792 xc:white +swap -gravity center -composite \
   -gravity north -pointsize 24 -annotate +0+100 "Title Text" laid-out.png
首先读取“foo.png”并调整其大小。然后,它设置所需画布的大小,创建该大小的白色画布,将重心设置为中心,将覆盖图像与画布交换以获得正确的顺序,并在画布上合成以画布为中心的“foo.png”

然后将重力设置更改为“北”,设置文本的点大小,并使用位于“+0+100”的文本对图像进行注释。从左中到右为零像素,从顶部向下为100像素


几个实验可以帮助你找到适合你需要的设置。

这里有一种在ImageMagick中使用蒙太奇的替代方法

logo.jpg

几何参数160x120将按该尺寸调整大小,+25+25添加该尺寸的边框。请注意,与GeeMack的解决方案相比,这在定位标题方面的灵活性要小一些

montage -title "Testing" logo.jpg -geometry 160x120+25+25 -tile 1x1 -frame 0 -background white logo_title.jpg