【发布时间】:2015-11-01 19:15:54
【问题描述】:
我正在寻找一个 Linux 命令行实用程序,它可以让我从现有图像创建动画 gif,然后应用平移和/或缩放来创建动画 gif。我已经研究了 ImageMagick 之类的一些,但没有发现任何帮助。我需要一个命令行实用程序或节点模块的东西。任何帮助是极大的赞赏!
【问题讨论】:
我正在寻找一个 Linux 命令行实用程序,它可以让我从现有图像创建动画 gif,然后应用平移和/或缩放来创建动画 gif。我已经研究了 ImageMagick 之类的一些,但没有发现任何帮助。我需要一个命令行实用程序或节点模块的东西。任何帮助是极大的赞赏!
【问题讨论】:
你可以用 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”中间文件名更改为唯一的名称,这样并行作业就不会相互挤压。)