1

imageio用来从使用 PIL 创建的一组 PNG 生成 GIF。这是我的代码(在这里找到):

    import imageio

    path = "./img/"
    os.chdir(path)
    filenames = sorted((fn for fn in os.listdir('.') if fn.endswith('.png')))

    with imageio.get_writer('./img/movie.gif', mode='I') as writer:
        for filename in filenames:
            image = imageio.mimread(filename)
            writer.append_data(image)

但是,我不断收到以下错误:

    Traceback (most recent call last):
      File "gifcreate.py", line 7, in <module>
        image = imageio.mimread(filename)
      File "/Users/felipe_campos/Documents/DECO/venv/lib/python2.7/site-packages/imageio/core/functions.py", line 261, in mimread
        reader = read(uri, format, 'I', **kwargs)
      File "/Users/felipe_campos/Documents/DECO/venv/lib/python2.7/site-packages/imageio/core/functions.py", line 108, in get_reader
'in mode %r' % mode)
    ValueError: Could not find a format to read the specified file in mode 'I'

有人对我能做什么有任何想法吗?我尝试在虚拟环境之外运行它,但它一直告诉我ImportError: No module named imageio(与 scipy 和其他一些模块相同),所以我不知道该怎么做。

编辑:

想通了,只需使用 imread(filename) 而不是 mimread(filename) 就可以了。

4

1 回答 1

1

这看起来像一个缺陷/错误。

for filename in filenames:

在这种情况下,filenames 是一个 str,它是一个可迭代的,python 会很高兴地迭代它。

为什么不尝试做filenames = ['./img/', ],看看会发生什么。

(快速浏览一下 imageio 的文档,我不确定调用签名是否需要一个目录 - 我认为它正在寻找实际的文件名)

uri : {str, bytes, file}

The resource to load the images from. This can be a normal filename, a file in a zipfile, an http/ftp address, a file object, or the raw bytes.

如果您想做的是遍历目录中的所有文件,则可以查看 python 中的 os 。

于 2017-03-15T18:31:06.200 回答