2012-01-08 87 views
3

我在讀取某些圖像的IPTC數據時遇到了一些麻煩,我之所以要這樣做,是因爲我的客戶端已經擁有IPTC數據中的所有關鍵字,並且不希望在網站上重新輸入。閱讀圖片IPTC數據

所以我創造了這個簡單的腳本來讀出來:

$size = getimagesize($image, $info); 

if(isset($info['APP13'])) { 
    $iptc = iptcparse($info['APP13']); 

    print '<pre>'; 
     var_dump($iptc['2#025']); 
    print '</pre>'; 
} 

這工作完全在大多數情況下,但它有一些圖像的麻煩。

注意:未定義指數:2#025

雖然我可以清楚地看到在Photoshop中的關鍵字。

是否有任何體面的小型圖書館可以讀取每個圖像中的關鍵字?或者我在這裏做錯了什麼?

+0

我注意到這隻發生在Photoshop CS3中保存的圖像 – 2012-01-24 11:06:00

回答

0

ExifTool是非常強大的,如果你可以掏出到(從PHP它看起來像?)

+0

謝謝,但不幸的是我無法在當前的主機上運行shell命令。 – 2012-01-24 11:05:36

0

我已經看到了很多的奇怪的IPTC問題。可能是你有2個APP13段。我注意到,出於某些原因,一些JPEG有多個IPTC塊。這可能是使用多個照片編輯程序或手動文件操作的問題。

可能是PHP試圖讀取空的APP13甚至嵌入「縮略圖元數據」。

也可能是段長度問題 - APP13或8BIM具有長度可能有錯誤值的標記字節。

嘗試十六進制編輯器並檢查文件「手動」。