2016-12-19 69 views
6

我曾嘗試在線閱讀大量示例,發現imageio是完美的軟件包。 Also found examples written in here使用python中的imageio製作gif圖像

我剛遵循所示的例子中,並試圖以下

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秒,所以應該可以正常工作。我可能在這裏錯過了一些東西。

+1

雙方關於Python 2.7.1接近的工作和['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)),使用幾個.png圖像。你確定所有你想使用的圖像都被選中了嗎?檢查'file_names'列表以查看它們是否都在那裏。 – berna1111

+0

我嘗試了第一種方法。它適用於大約758個.png文件。但是我有大約3000個.png文件,758之後的文件沒有附加在.gif文件中。這有什麼理由嗎?我知道file_names數組有這些文件。有關我的問題,請參閱https://stackoverflow.com/questions/44650649/why-is-my-gif-missing-png-files-after-250-iterations。謝謝!! – user77005

+0

結帳https://www.quora.com/How-long-can-a-GIF-animate –

回答

2

這個工作對我來說:

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)