2016-12-16 102 views
1

我試圖訪問一個圖像從gimpfu插件內的EXIF數據,特別是照片的拍攝日期,我可以PIL做到這一點,訪問EXIF數據

from PIL import Image 

date_taken = Image.open(file)._getexif()[36867] 

但是當我嘗試要導入PIL,插件不會再出現在gimp菜單中。沒有錯誤產生,GIMP正常啓動。 有沒有辦法用gimpfu獲取exif數據?或者有沒有辦法將PIL導入插件?

+0

添加了如何在我的回答中使用Gimpfu獲取EXIF數據 – xenoid

回答

1

如果該插件不再出現在Gimp菜單中,很可能是因爲它存在一些問題,導致它無法運行到結束註冊。它可能是一個語法錯誤,或者在這種情況下,導入PIL的問題。如果你在Linux或OSX上,這很容易調試,只需在終端會話中啓動Gimp,python解釋器的錯誤消息就會顯示在那裏。在Windows上,您可以使用--verbose參數啓動Gimp,以使其在額外的控制檯窗口中運行以顯示消息,但我不確定那裏是否顯示了Python錯誤。如果他們不這樣做,請在try/except中包含整個代碼,並將Exception錯誤轉儲到文件中。您可以使用traceback模塊獲取更多信息(錯誤的行數等),但它本身可能是其他導入錯誤的原因...

要解答您的初始問題,可以從Gimp獲取EXIF數據使用:

exifData=image.parasite_find('exif-data').data 

然而,這僅僅是一個字節數組,你必須做你自己解析(但我相信你會找到Python代碼片段中提取所需的數據)。

+0

我發現一個線程說gimp 2.8(我正在運行的版本)可能會刪除exif數據?如果我嘗試 – Kelly

+0

@Kelly是的,但是IIRC已經修復。實際上,爲了回答上述問題,我在我的相機的圖片中使用Gimp 2.8.18進行了試用。 – xenoid