我有一堆PNG
名为foo<bar>.png
我希望转换为 TIF 动画的文件。<bar>
是一个数字,从 0 到 25 以 5 为单位变化。ImageMagickfoo5.png
在动画中排在最后,而它应该排在第二位。除了将文件重命名为foo05.png
将其放置在正确的位置之外,还有其他方法吗?
问问题
9024 次
6 回答
16
如果您的输入图像多于输入的方便程度(例如 foo0..foo100.png),您可以这样做(在 Linux、Unix 和 Mac OS X 上):
convert \
-delay 10 \
$(for i in $(seq 0 5 100); do echo foo${i}.png; done) \
-loop 0 \
animated.gif
于 2012-09-09T20:12:59.667 回答
11
简单易行,列出您的图像并对其进行排序:
convert -delay 10 -loop 0 $(ls -1 *.png | sort -V) animated.gif
于 2019-01-11T00:25:59.487 回答
6
您只需按照它们应该出现在动画中的顺序给出 PNG 文件的顺序。利用:
foo0.png foo5.png foo10.png foo15.png foo20.png foo25.png
代替
foo*.png
毕竟,只有 6 个不同的文件名应该很容易输入:
convert \
-delay 10 \
foo0.png foo5.png foo10.png foo15.png foo20.png foo25.png \
-loop 0 \
animated.gif
于 2012-09-09T15:10:53.710 回答
1
您可以将“查找”与“排序”一起使用:
convert -delay 10 $(find . -name "*.png" -print0 | sort -zV | xargs -r0 echo) -loop 0 animated.gif
于 2017-10-17T19:02:49.583 回答
0
比 ls 和 sort 更简单的是使用 ls 的内置 -v 选项:
convert -delay 10 -loop 0 `ls -v *.png` animated.gif
被`...`
执行而不是解释为字符串。
于 2020-10-22T16:01:09.427 回答
0
或者,如果您了解一点 python,那么您可以轻松地从 python shell 中利用它的帮助。
python
通过在终端中输入来打开 python shell 。并应用以下魔法 -
# Suppose your files are like 1.jpeg, 2.jpeg etc. upto 100.jpeg
files = []
for i in range(1, 101):
files.append('{}.jpeg'.format(i))
command = 'convert -delay 10 {} -loop 0 animated.gif'.format(' '.join(files))
from subprocess import call
call(command, shell=True)
你的工作应该完成!
于 2018-04-23T16:53:02.213 回答