使用python中的imageio从图像制作gif

had*_*i k 10 python animated-gif python-imageio

我尝试在网上阅读了很多例子,发现imageio它是完美的包.还找到了这里写的例子.

我刚刚按照图示示例并尝试了以下操作

import imageio as io
import os
file_names = sorted((fn for fn in os.listdir('.') if fn.startswith('surface')))
#making animation
with io.get_writer('surface.gif', mode='I', duration=0.5) as writer:
    for filename in file_names:
        image = io.imread(filename)
        writer.append_data(image)
writer.close()
Run Code Online (Sandbox Code Playgroud)

另一个例子.

images = []
for filename in file_names:
    images.append(io.imread(filename))
io.mimsave('surface1.gif', images, duration = 0.5)
Run Code Online (Sandbox Code Playgroud)

这两个都行不通.基本上我只看到gif中的第一帧并且眨眼并完成.持续时间设置为0.5秒,所以它应该工作正常.我可能错过了这里的一些东西.

use*_*330 15

万一有人需要它,对于python 3.6.8,它需要 fps

imageio.mimsave('/path/file.gif',images,fps=55)
Run Code Online (Sandbox Code Playgroud)


Dav*_*itt 10

这对我有用:

import os
import imageio

png_dir = '../saves/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('../saves/gif/movie.gif', images)
Run Code Online (Sandbox Code Playgroud)