我尝试使用从Scilab导出的一些帧来创建GIF。框架命名为anim_1.gif,anim_2.gif ......依此类推,直到100
我在Windows shell中使用此行来创建GIF:
def sample_difference(filename):
df = pd.read_csv(filename, header=None, names=['timestamp', 'time skipped', 'x', 'y', 'z', 'label'],
skipinitialspace=True)
df.timestamp = pd.to_datetime(df.timestamp) # Convert column type to be datetime
df = df.set_index(['timestamp'])
df.assign(dx=df.x.diff(), dy=df.y.diff(), dz=df.z.diff())
return df
我的问题是,我看到ImageMagick创建的GIF不是数字顺序,而是订单1,10,100,11,12 ...,2,20,21 ...等等
我对ImageMagick并不熟悉并且阅读帮助页面并没有真正帮助:/
有没有人看到解决方案?
由于
答案 0 :(得分:1)
默认目录列表将在2,20之前显示1,10,100等。这是ImageMagick在使用通配符列表时将用于读取它们的顺序。使用anim_001.gif,anim_002.gif等前导零重命名文件可以解决您的问题。查看Scilab手册,了解如何使用前导零保存文件。
另一种可能的方法,假设你的输入文件按照创建时间排序,是按时间/日期列出目录,将输出重定向到文本文件,然后让你的"转换"命令从该列表中读取输入图像。使用" @"并且文件名将告诉IM您正在从文本文件中读取输入图像列表。你可以试试这样的......
dir /o:d /b anim_*.gif > tmp.txt
convert -delay 10 -loop 0 @tmp.txt animation.gif
答案 1 :(得分:0)
我已经尝试了第一个选项但没有用,但第二个选项确实如此,非常感谢。
我不太确定能理解发生了什么。 我真的不明白第一行,为什么IM现在能够以良好的顺序读取帧。
我的猜测是.txt文件按创建时间顺序存储帧,不知何故,当从.txt文件中读取IM时,它会读取创建时间而不是名称来查找正确的顺序。是吗?
非常感谢:)