2013-03-11 75 views
0

我試圖從PIL進口圖片,ImageChops蟒蛇調試這個腳本,ImageOpsPython的PIL庫工作不image.thumbnail(大小,Image.ANTIALIAS)

我已經找遍了這個問題似乎這裏是「image.thumbnail(size,Image.ANTIALIAS)」。有人有主意嗎?由於

image = Image.open(f_in) 
print "got here" 
image.thumbnail(size, Image.ANTIALIAS) 
print "cannot get here" 
image_size = image.size 
if pad: 
    thumb = image.crop((0, 0, size[0], size[1])) 

    offset_x = max((size[0] - image_size[0])/2, 0) 
    offset_y = max((size[1] - image_size[1])/2, 0) 

    thumb = ImageChops.offset(thumb, offset_x, offset_y) 

else: 
    thumb = ImageOps.fit(image, size, Image.ANTIALIAS, (0.5, 0.5)) 

thumb.save(f_out) 

編輯 感謝您的快速答覆馬克。我想到了。

我只好:我沒得的libjpeg安裝

pip uninstall PIL 
sudo apt-get install libjpeg8-dev 
pip install PIL 

。不知道爲什麼我沒有得到一個錯誤。

+0

您實際觀察到的問題是什麼? – 2013-03-11 23:09:21

+0

對不起。問題是代碼停在image.thumbnail。我弄明白了。我不得不卸載PIL,sudo apt-get install libjpeg8-dev,然後重新安裝PIL。它的工作。 – 2013-03-11 23:36:59

回答

1

如果程序永遠不會到達「無法到達此處」,那麼問題是thumbnail正在拋出異常。你在問題中沒有提到,它應該產生一個錯誤。

PIL使用惰性圖像加載 - 在open調用它可能會打開文件,但它實際上並不嘗試讀取整個文件。如果您的文件損壞或格式錯誤,嘗試一次就會失敗像thumbnail正在做的那樣,用圖像做一些事情。