2016-12-19 12 views
6

Próbowałem przeczytać wiele przykładów online i znalazłem imageio jest idealnym pakietem do tego. Also found examples written in here.robienie gif z obrazów za pomocą obrazu w pytonie

właśnie za przykładem jak pokazano i próbował następujące

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

i inny przykład.

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

oba te elementy nie działają. Zasadniczo widzę tylko pierwszą klatkę z gifu i mrugnięcie i wykończenie. Czas trwania ustawiony jest na 0,5secs, więc powinien działać poprawnie. Możliwe, że czegoś tu nie ma.

+1

Oba podejścia pracę na Python 2.7.1 i ['imageio' 2.1.2] (https://anaconda.org/conda-forge/imageio) ([1 ] (https://drive.google.com/open?id=0By7vRQt-oAVdZXhtbU1yNUlQN0E) [2] (https://drive.google.com/open?id=0By7vRQt-oAVdaUhhbmxVRnotT1U)), używając kilku obrazów .png. Czy na pewno wybierasz wszystkie obrazy, których chcesz użyć? Sprawdź listę 'file_names', czy są tam wszystkie. – berna1111

+0

Próbowałem już pierwszego podejścia. działa na około 758 plików .png. Ale mam około 3000 plików .png, a pliki po 758 nie są dołączone do pliku .gif. Czy jest jakiś powód? Wiem, że tablica file_names ma te pliki. Więcej informacji na temat mojego pytania można znaleźć na stronie https://stackoverflow.com/questions/44650649/why-is-my-gif-missing-png-files-after-250-iterations. Dzięki!! – user77005

+0

Sprawdź https://www.quora.com/How-long-can-a-GIF-animate –

Odpowiedz

2

Działa to dla mnie:

import os 
import imageio 

png_dir = "./saves/png/" 
images = [] 
for subdir, dirs, files in os.walk(png_dir): 
    for file in files: 
     file_path = os.path.join(subdir, file) 
     if file_path.endswith(".png"): 
      images.append(imageio.imread(file_path)) 
imageio.mimsave('./saves/gif/movie.gif', images) 
Powiązane problemy