使用images2gif.py创建GIF时出现Numpy错误

时间:2013-08-20 00:32:00

标签: python image python-imaging-library gif

我正在尝试使用visvis包中的images2fig.py创建一个GIF文件

使用这个非常简单的代码

import glob
from PIL import Image
from visvis.vvmovie.images2gif import writeGif

images = [Image.open(image) for image in glob.glob("*.png")]
filename = "test.gif"
writeGif(filename, images, duration=0.2)

我收到了错误

    writeGif(filename, images, duration=0.2)
  File "C:\Python27\lib\site-packages\visvis\vvmovie\images2gif.py", line 570, in writeGif
    images = gifWriter.convertImagesToPIL(images, dither, nq)
  File "C:\Python27\lib\site-packages\visvis\vvmovie\images2gif.py", line 373, in convertImagesToPIL
    im = Image.fromarray(im,'RGB')
  File "C:\Python27\lib\site-packages\PIL\Image.py", line 1937, in fromarray
    obj = obj.tobytes()
AttributeError: 'numpy.ndarray' object has no attribute 'tobytes'

我做错了什么?我该如何解决这个问题?

我使用的是Python 2.7.5,PIL 2.0.0-1,numpy 1.7.1-2,所有都是Python(x,y)2.7.5的标准安装,以及最新版本的visvis 1.8。

1 个答案:

答案 0 :(得分:5)

这看起来像Pillow bug#224

据我所知,该错误是在2.0.0中引入的,并在2.1.0(checked in 21 May 2013)中修复。所以,你应该能够通过升级Pillow来修复它。

(如果您使用的是非常旧版本的numpy,或Python 3.x或2.0之前的Pillow(或PIL),这不是您的错误。但这些都不适用于您。)