如何使用 ImageMagick 在裁剪图像顶部注释文本

Posted

技术标签:

【中文标题】如何使用 ImageMagick 在裁剪图像顶部注释文本【英文标题】:How to annotate a text on the top of a cropped image using ImageMagick 【发布时间】:2020-03-10 16:49:28 【问题描述】:

我想在一系列图像的顶部注释一个计数器,每个图像都是裁剪的。 我写道:

crop=1050x"$height"+0+"$top"
loc=90x90+10+"$top"
time=$((time-1))
convert $image -crop "$crop" -pointsize 24 -fill white -undercolor '#00000080' -gravity North -annotate $loc  "$time" "out/page_"$counter"_"$i".png"    

这在循环中被调用并且变量top增加。所以,我可以在第一个输出图像的顶部看到计数器,但在其余图像上看不到。似乎它首先在原始图像上绘制计数器然后对其进行裁剪,因此计数器在裁剪后消失。

我尝试使用$loc 变量作为注释的位置,但它也不起作用!

【问题讨论】:

我会在 -crop 操作之后添加 +repage 以将分页几何设置回 WxH+0+0。如果您希望注释与每个图像的顶部距离相同,请不要在 $loc 变量中使用 $top 增加该距离。只需使用您希望文本从顶部向下的像素数。 @GeeMack 谢谢,您可以将其发布为答案。 【参考方案1】:

当您使用 ImageMagick 进行“-crop”时,您通常需要在操作后立即添加“+repage”以将裁剪后的分页几何设置回 WxH+0+0。这可能很重要,因为像“-annotate”这样的一些操作将根据该几何进行定位。

在您的命令中,如果您希望注释与每张图像顶部的距离相同,请在裁剪后重新分页,并且不要使用“$loc”变量中的“$top”增加该距离。只需使用您希望文本从顶部向下的像素数。

【讨论】:

以上是关于如何使用 ImageMagick 在裁剪图像顶部注释文本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 imageMagick 缝合裁剪的图像?

使用CodeIgniter和Cropper进行图像裁剪

ImageMagick:转换、裁剪、调整大图像

如何使用 ImageMagick 从文件夹中每个 JPG 图像的底部裁剪 486 像素?

ImageMagick:如何将图像最小化为特定宽高比?

使用 Jcrop 和 Imagemagick 裁剪图像