最近項目中發現一件頗有意思的現象,H5上傳圖片,接口上傳服務器保存,前端展現此圖片正常,後臺展現逆時針90°,後來知道了exif,經過exif信息查看器能夠看到這張圖片的方向。php
簡單介紹一下exif,一種圖像文件格式,數據存儲與JPEG格式是徹底相同的,實際上Exif格式就是在JPEG格式頭部插入了數碼照片的信息。前端
php處理圖片的exif,首先要在php.ini中開啓mbstrig和exif模塊服務器
$imgInfo = getimagesize($upload_file['filename']); //獲取圖像大小及相關信息,2是圖像的類型,2 = JPG if($imgInfo[2] == 2) { $img2 = imagecreatefromjpeg($upload_file["filename"]); $exif = exif_read_data($upload_file["filename"]); //exif_read_data函數能夠用來讀取圖片的exif信息 if(!empty($exif['Orientation'])) { switch($exif['Orientation']) { case 8: $img2 = imagerotate($img2,90,0); imagejpeg($img2, $new_img); break; case 3: $img2 = imagerotate($img2,180,0); imagejpeg($img2, $new_img); break; case 6: $img2 = imagerotate($img2,-90,0); imagejpeg($img2, $new_img); break; } } imagedestroy($img2); // unlink($upload_file['filename']); }
這樣就行了,能夠解決exif圖片旋轉的問題,歡迎你們多多指教!函數