2016-12-19 93 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)