使用imageio制作gif时的图像顺序

时间:2018-11-30 10:16:41

标签: python png animated-gif python-imageio

我正在使用生成的.png文件通过imageio模块制作gif。尽管.png文件是按数字顺序排序的,但是生成的.gif动画并不遵循该顺序。是什么原因? 到目前为止,这是我的代码:

png_dir='png'
images=[]
for file_name in os.listdir(png_dir):
    if file_name.endswith('.png'):
        file_path = os.path.join(png_dir, file_name)
        images.append(imageio.imread(file_path))
imageio.mimsave('movie.gif', images, duration=1)

.png文件类似于file_01.png, file_02.png ... file_099.png

为什么没有以与.png文件相同的顺序生成gif?

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

假设文件是有序的,但是os.listdir的{​​{3}}状态(强调我的意思):

  

os.listdir(path ='。')

     

返回一个列表,其中包含由path给出的目录中条目的名称。 列表以任意顺序,并且不包含特殊条目“。”。和“ ..”,即使它们存在于目录中。

您可以自己对返回的列表进行排序:

for file_name in sorted(os.listdir(png_dir)):

注意:Python没有内置的自然排序。如果这正是您要寻找的内容,则应检查以下问题的答案:docs