PHP 處理圖片旋轉問題 2017-01-10
有些數位相機因為有陀螺儀,
會自動將相片導正,
會導致上傳時圖片旋轉不正確的問題.
首先將php.ini內容的EXIF打開
;extension=php_exif.dll(去掉最前方的;)//擷取檔案,$tmp_file為檔案位置
$source = imagecreatefromjpeg($tmp_file);
//讀取檔案exif資訊(檔案 , 是否以逗號區隔數組資訊結果 , 是否將每個Section都變成陣列)
$exif = exif_read_data($tmp_file, 0, true);
$orient = 0;
if(!empty($exif['IFD0']['Orientation'])){$orient = $exif['IFD0']['Orientation'];} //偵測exif的旋轉資訊
switch($orient) {
case 3: //圖片原向左旋轉180度
$source = imagerotate($source, 180, 0); //圖片向左旋轉18度
break;
case 6: //圖片原向左旋轉90度
$source = imagerotate($source, -90, 0); //圖片向右旋轉90度
break;
case 8: //圖片原向右旋轉90度
$source = imagerotate($source, 90, 0); //圖片向左旋轉90度
break;
default: //圖片不需要旋轉
$source = imagerotate($source, 0, 0); //圖片不旋轉
break;
}
imagejpeg($source); //將圖片轉成jpg檔案