2013-08-20 64 views
4

我試圖使用images2fig.py從visvis包NumPy的錯誤使用images2gif.py

有了這個非常簡單的代碼

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) 

創建一個GIF文件創建GIF,當我得到一個錯誤

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這是最新版本的標準安裝。

+0

請給出Python,PIL/Pillow,顛簸和visvis的版本。 – abarnert

+0

@abarnert更新了OP中的信息。 – LWZ

+0

太好了,謝謝。這意味着我的猜測是正確的。 – abarnert

回答

5

這看起來像Pillow bug#224

從我所知道的,這個錯誤是在2.0.0中引入的,並且在2.1.0(checked in 21 May 2013)中被修復。所以,你應該可以通過升級Pillow來解決它。

(如果您使用的是非常舊的numpy版本,或Python 3.x,或2.0以前的Pillow(或PIL),這不是您的錯誤,但這些都不適用於您。)

+0

解決了這個問題。但我得到了另一個錯誤。我正在更新OP。 – LWZ

+0

@LWZ:新的錯誤看起來與原始錯誤完全不同,並且可能與原始錯誤無關。最好發佈一個新問題,而不是編輯這個問題。 – abarnert

+0

你是對的,我在這裏發佈了一個新的http://stackoverflow.com/q/18325419/1382745 – LWZ