2016-04-26 61 views
0

我正在用Python腳本從imgur.com下載很多圖像,並且因爲我擁有格式爲http://imgur.com/{id}的所有鏈接,所以我必須強制通過用http://i.imgur.com/{id}.gif替換原始網址來下載它們,然後保存所有沒有擴展名的圖像。 (我知道有一個Imgur的API,但我不能使用它,因爲它有這種工作的限制)imghdr/python - 無法檢測某些圖像的類型(圖像擴展名)

現在在下載圖片後,我想使用imghdr模塊來確定圖像的原始擴展名:

>>> import imghdr 
>>> imghdr.what('/images/GrEdc') 
'gif' 

的問題是,這個工程有80%的成功率,剩下的20%都被認定爲'None'並檢查其中的一些,我注意到,他們是最有可能的所有.jpg圖像。

爲什麼imghdr無法檢測到格式?即使沒有擴展名,我也可以用Ubuntu的默認圖像查看器打開這些圖像,所以我不認爲它們已經損壞。

回答

0

這是一個知道lib的問題,它不檢測一些有效的JPEG圖像。

您可以使用lib的修改來更好地檢測所有JPEG圖像,特別是在您確實知道所有文件都是圖像的情況下。

https://bugs.python.org/issue28591

如果連這個固定的LIB你無法檢測到一些圖片,那麼你可以用pillow嘗試,支持更大量的格式,但少輕便,是不包括在Python構建一個外部依賴在庫中。