使用ImageMagick或类似的命令行工具在页面上将图像定位到标题

时间:2017-12-04 15:15:04

标签: image command-line imagemagick

我有一张风景图片foo.png,我想在这样的网页上展示:

+--------------+
|              |
|  title text  |
|              |
|  +--------+  |
|  |foo.png |  |
|  |        |  |
|  +--------+  |
|              |
|              |
+--------------+

我已将图片正确放置在页面上:

convert -background white -page letter+20+300 -resize 572x572 foo.png -layers flatten laid-out.png

但是,我无法正确使用-annotate-draw textlabel:来使title text显示在正确的位置。< / p>

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

2 个答案:

答案 0 :(得分:1)

看起来你最好在这里利用ImageMagick的“-gravity”设置。这可能不是您正在寻找的,但请注意“-gravity”如何使用“-composite”定位叠加图像,并使用像这样的命令将文本定位为“-annotate”... < / p>

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像素。

一些实验应该可以帮助您找到适合您需求的设置。

答案 1 :(得分:0)

这是使用蒙太奇在ImageMagick中执行此操作的另一种方法。

logo.jpg

enter image description here

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

enter image description here

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