web-dev-qa-db-fra.com

faire du gif à partir d'images en utilisant imageio dans python

J'ai essayé de lire de nombreux exemples en ligne et j'ai trouvé que imageio était le package parfait pour cela. également trouvé des exemples écrits ici .

Je viens de suivre l'exemple comme indiqué et j'ai essayé ce qui suit

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()

et un autre exemple.

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

les deux ne fonctionnent pas. Et en gros, je ne vois que la première image du gif et un clignement et une finition. La durée est fixée à 0,5 s, elle devrait donc fonctionner correctement. J'ai peut-être raté quelque chose ici.

11
hadi k

Cela fonctionne pour moi:

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)
10
Dave Babbitt

au cas où quelqu'un en aurait besoin, pour python 3.6.8, il fallait fps

imageio.mimsave('/path/file.gif',images,fps=55)
6
ameet chaubal