在寫一個php把圖片方向根據exif旋轉過來的功能,功能是做好了,但是旋轉之後的圖片檔案exif資訊都沒了,因為我用
imagejpeg
重寫了圖片,請問怎麼把exif寫回去?
貼一下我旋轉圖片的代碼:
function rotateImg($img,$degrees,$bgd_color=0,$ignore_transparent=null){ $resource = imagecreatefromjpeg($img); //$resource = imagecreatefromstring(file_get_contents($img)); if(!$resource) return false; $resource = imagerotate($resource, $degrees, $bgd_color,$ignore_transparent); print_r($img); if($resource&&imagejpeg($resource,$img)){ imagedestroy($resource);//釋放記憶體 return true; } return false;}
回複內容:
在寫一個php把圖片方向根據exif旋轉過來的功能,功能是做好了,但是旋轉之後的圖片檔案exif資訊都沒了,因為我用imagejpeg
重寫了圖片,請問怎麼把exif寫回去?
貼一下我旋轉圖片的代碼:
function rotateImg($img,$degrees,$bgd_color=0,$ignore_transparent=null){ $resource = imagecreatefromjpeg($img); //$resource = imagecreatefromstring(file_get_contents($img)); if(!$resource) return false; $resource = imagerotate($resource, $degrees, $bgd_color,$ignore_transparent); print_r($img); if($resource&&imagejpeg($resource,$img)){ imagedestroy($resource);//釋放記憶體 return true; } return false;}
用Imagick可以很方便的讀取/寫入EXIF資訊。
http://php.net/manual/en/imagick.setimageproperty.php
Gd是不支援exif寫入的,只能讀取。
相比Gd,Imagick實在是太先進了。換吧。