【问题标题】:Numpy error when creating GIF using images2gif.py使用 images2gif.py 创建 GIF 时出现 Numpy 错误
【发布时间】:2013-08-21 22:04:53
【问题描述】:

我正在尝试使用 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(最新版本)的标准安装。

【问题讨论】:

  • 请给出Python、PIL/Pillow、bumpy、visvis的版本。
  • @abarnert 更新了 OP 中的信息。
  • 太好了,谢谢。这意味着我的猜测是正确的。
  • 顺便说一句,不错。看起来 visvis 的人遇到了这个错误,没有弄清楚,只是没有尝试用 Pillow 运行他们的代码,因为......希望 2.1.0 修复会刺激他们重新使用 Pillow 进行测试,AFAIK是唯一阻止他们完全兼容 Python-3.x 的东西……

标签: python image python-imaging-library gif


【解决方案1】:

这看起来像Pillow bug#224

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

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

【讨论】:

  • 解决了这个问题。但我遇到了另一个错误。我正在更新 OP。
  • @LWZ:新错误看起来与原来的错误完全不同,而且可能与原来的错误无关。最好发布一个新问题而不是编辑这个问题。
  • 你说得对,我在这里发了一个新的stackoverflow.com/q/18325419/1382745
  • @LWZ:不幸的是,我无法让 visvis 在我的系统上运行,所以我无法帮助解决新问题。但希望其他人可以。
  • 没关系。非常感谢。
猜你喜欢
  • 2013-08-21
  • 1970-01-01
  • 1970-01-01
  • 2017-08-11
  • 2016-05-02
  • 2021-08-29
  • 2011-04-12
  • 2021-07-01
  • 1970-01-01
相关资源
最近更新 更多