在 python 中使用 imageio 从图像制作 gif
making gif from images using imageio in python
我尝试在网上阅读了很多示例,发现 imageio
是最适合它的包。 Also found examples written in here。
我刚刚按照所示示例进行操作并尝试了以下
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()
还有一个例子。
images = []
for filename in file_names:
images.append(io.imread(filename))
io.mimsave('surface1.gif', images, duration = 0.5)
这两个都不行。基本上我只看到 gif 中的第一帧,然后眨眼并完成。持续时间设置为 0.5 秒,因此它应该可以正常工作。我可能在这里错过了一些东西。
这对我有用:
import os
import imageio
png_dir = '../animation/png'
images = []
for file_name in sorted(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('../animation/gif/movie.gif', images)
如果有人需要,
对于 python 3.6.8,它需要 fps
imageio.mimsave('/path/file.gif',images,fps=55)
我尝试在网上阅读了很多示例,发现 imageio
是最适合它的包。 Also found examples written in here。
我刚刚按照所示示例进行操作并尝试了以下
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()
还有一个例子。
images = []
for filename in file_names:
images.append(io.imread(filename))
io.mimsave('surface1.gif', images, duration = 0.5)
这两个都不行。基本上我只看到 gif 中的第一帧,然后眨眼并完成。持续时间设置为 0.5 秒,因此它应该可以正常工作。我可能在这里错过了一些东西。
这对我有用:
import os
import imageio
png_dir = '../animation/png'
images = []
for file_name in sorted(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('../animation/gif/movie.gif', images)
如果有人需要,
对于 python 3.6.8,它需要 fps
imageio.mimsave('/path/file.gif',images,fps=55)