【问题标题】:Linux - create animated gif with pan and zoomLinux - 创建带有平移和缩放的动画 gif
【发布时间】:2015-11-01 19:15:54
【问题描述】:

我正在寻找一个 Linux 命令行实用程序,它可以让我从现有图像创建动画 gif,然后应用平移和/或缩放来创建动画 gif。我已经研究了 ImageMagick 之类的一些,但没有发现任何帮助。我需要一个命令行实用程序或节点模块的东西。任何帮助是极大的赞赏!

【问题讨论】:

    标签: linux node.js terminal


    【解决方案1】:

    你可以用 ImageMagick 做这样的事情——如果不超过 StackOverflow 的最大上传,我不能让它更大或更平滑,但你可以在本地将 steps 参数更改为 100,也可以将 -resize 更改为 -resize 500x400你的机器:

    #!/bin/bash
    # Panned and zoomed animation
    # Mark Setchell
    #
    steps=40
    # Final x offset from top left
    finalx=2800
    # Final y offset from top left
    finaly=1400
    # Initial & Final width
    initw=4000
    finalw=1000
    # Initial & Final height
    inith=3200
    finalh=800
    
    # Remove anything from previous attempts
    rm frame-*jpg 2> /dev/null
    for i in $(seq 0 $steps); do
       ((x=finalx*i/steps))
       ((y=finaly*i/steps))
       ((w=initw-(i*(initw-finalw)/steps)))
       ((h=inith-(i*(inith-finalh)/steps)))
       echo $i,$x,$y,$w,$h
       name=$(printf "frame-%03d.jpg" $i)
       convert elcap.jpg -crop ${w}x${h}+${x}+${y} -resize 200x160 "$name"
    done
    convert -delay 20 frame* anim.gif
    

    Apple 对 OSX El Capitan 桌面上使用的华丽图像的版权得到承认。

    【讨论】:

    • 感谢您的回复。我试过了,它可以工作,只是没有我需要它工作的那么快。我每天要生成成千上万个视频,而且这个过程非常快。我需要一些速度更快的东西,它不会为每一帧创建单独的图像。它也没有平滑的缩放/平移。它在图像之间跳转。
    • 这个脚本太棒了。如果输出太断断续续,可以增加帧数并减少帧间延迟(耗时更长但看起来更好)
    • 如果你制作了很多这些,你可以将输入图像文件名作为脚本的输入参数,然后将ls 命令的输出通过管道传递给xargs myscript.sh,并传递@987654329 @ 标志到 xargs 以并行运行 N 个作业。 (您还需要将“frame-%03d.jpg”中间文件名更改为唯一的名称,这样并行作业就不会相互挤压。)
    猜你喜欢
    • 2011-11-29
    • 1970-01-01
    • 2015-03-30
    • 2013-12-17
    • 2011-03-31
    • 2012-07-08
    • 2018-05-13
    • 2011-07-04
    • 2017-05-30
    相关资源
    最近更新 更多