如何在linux中为图片添加底部框和文本

时间:2016-11-30 04:21:56

标签: css image imagemagick

我正在努力实现与此类似的结果

enter image description here

相反,我希望将盒子添加到最底部,大致覆盖屏幕的1/8。

我发现可以使用convert工具或ImageMagick添加文字,但我很难理解如何添加框/条。

2 个答案:

答案 0 :(得分:0)

方法1

你可以尝试这样的事情。首先,加载甲虫图像并启用透明层,以便稍后我们可以获得半透明的黑色效果。然后,在括号内,启动一些“旁边处理”,我们复制原始图片,将其大小调整为原始高度的12%并使其变黑。然后我们将透明度设置为50%,这样就完成了“旁边处理”。我们现在将-gravity设置为南,这样当我们合成黑盒子时,它出现在底部 - 这也为下一个注释设置锚点位置。

convert beetle.jpg -alpha on                                    \
  \( +clone -scale x12% -threshold 101% -channel A -fx "0.5" \) \
  -gravity south -composite                                     \
  -fill white -pointsize 24 -annotate 0,0 "Probably a Beetle" result.jpg

enter image description here

方法2

这是另一种做法,虽然它需要两个步骤,但可能更类似于你的思维方式。首先,获取 ImageMagick 以计算暗盒的尺寸并保存它们:

box=$(convert beetle.jpg -format "0,%[fx:int(h*0.88)] %w,%h" info:)

如果你运行echo $box,你会看到类似的内容:

0,253 432,288

然后使用这个变量:

convert beetle.jpg -gravity south      \
  -fill '#0008' -draw "rectangle $box" \
  -fill white -pointsize 24 -annotate 0,0 "Probably a Beetle" result.jpg

答案 1 :(得分:0)

扩展标记使用Imagemagick V7.03的第二个例子,但在Windows上,所以我不得不替换任何'用"你还需要使用magick而不是使用V7进行转换,否则它将使用V6版本,它将失败

magick input -gravity south -fill "#0008" -draw "rectangle 0,%[fx:int(h*0.88)] %w,%h" -fill white -pointsize 24 -annotate 0,0 "Probably a Beetle" result