css - linux下如何给图片添加底框和文字

标签 css image imagemagick

我正在尝试实现与此类似的结果

enter image description here

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

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

最佳答案

方法一

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

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

关于css - linux下如何给图片添加底框和文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40880237/

相关文章:

javascript - 如何获得div的最大可能宽度?

html - 使用 css 定位图像,这样它就不会从浏览器创建水平滚动条

php - MYSQL php数据库插入包括图像上传

php - 使用 php Imagemagick 调整图像大小

imagemagick - 如何避免 Imagemagick 在 gif 中转换帧的叠加

c++ - Magick++ 中的快速/高效像素访问

html - float 问题

css - 在 bootstrap 3 中对齐 Fieldset

javascript - 隐藏而不是悬停 - BOOTSTRAP TOGGABLE PILLS

javascript - 图像按钮在悬停时改变位置