2012-04-16 130 views
10

我有一些問題,其具有存儲在其EXIF/IPTC數據的圖像。
當我使用imageCreateFromJpeg(旋轉/作物或等),新存儲的文件不保留EXIF/IPTC數據。複製的圖像,並保留其EXIF/IPTC數據與PHP imageCreateFromJpeg?

我當前的代碼如下所示:

<?php 
// Before executing - EXIF/IPTC data is there (checked) 
$image = "/path/to/my/image.jpg"; 
$source = imagecreatefromjpeg($image); 
$rotate = imagerotate($source,90,0); 
imageJPEG($rotate,$image); 
// After executing - EXIF/IPTC data doesn't exist anymore. 
?> 

我做錯什麼了嗎?

回答

7

你沒有做錯什麼,但GD不IPTC的Exif數據中處理所有作爲其超出了GD做的範圍。

您將不得不使用第三方庫或其他PHP擴展來讀取源圖像中的數據,並將其重新插入到由imagejpeg創建的輸出圖像中。

這裏有一些感興趣的圖書館:pel (php exif library),在php.net的例子說明如何use pel做你想要什麼,php metadata toolkitiptcembed() function

+0

啊...所以換句話說,我要的EXIF/IPTC數據和存儲複製的新形象? – tftd 2012-04-16 23:55:18

+2

更正,在創建圖像之前或之後,您將不得不從源圖像中提取元數據。由於您正在使用'imagejpeg'輸出最終圖像,因此必須在將其保存之後將其寫入最終圖像。 – drew010 2012-04-17 00:04:21

+0

感謝您的幫助:) – tftd 2012-04-17 00:05:15