使用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