ImageMagick:如何使用一个转换命令将渐变拼接添加到图像?

时间:2012-08-06 13:00:25

标签: imagemagick gradient splice imagemagick-convert

是否可以在图像底部添加渐变拼接?似乎渐变选项requires -size,我无法提供,因为图像的大小可能会变化。

转换和撰写是可能的,但我只想使用一个命令。这样的事情(请注意,目前这是无效的):

convert -fill gradient:black-white -gravity south splice 0x20 image1.jpg image2.jpg

1 个答案:

答案 0 :(得分:1)

  1. 我的建议是使用-append代替-splice
  2. 图像尺寸可能会有所不同,但您可以通过运行identify -format %W image1.jpg来识别宽度。
  3. 所以,实现你想要的一个可能的命令是:

    convert                                                \
        input.jpg                                          \
       -size $(identify -format %W input.jpg)x20 gradient: \
       -append                                             \
        output.jpg
    

    <强>更新

    以上命令适用于Linux,Unix或Mac OS X,但不适用于Windows。在Windows上,实现相同功能的最简单方法是使用类似这两个命令:

    for /f "usebackq delims= " %I in (`identify -format %W input.jpg`) do set width=%I
    convert  input.jpg  -size %width%x20  gradient:  -append  output.jpg
    

    以上内容适用于cmd.exe窗口中的直接执行。如果您将命令放入批处理文件中,则需要修改%I以使其%%I

    (对不起,我现在没有Windows系统来验证确切的语法......)

    <强> UPDATE2: Windows bat alternative for Bash inline command