PHP處理exif的圖片旋轉問題

最近項目中發現一件頗有意思的現象,H5上傳圖片,接口上傳服務器保存,前端展現此圖片正常,後臺展現逆時針90°,後來知道了exif,經過exif信息查看器能夠看到這張圖片的方向。php

簡單介紹一下exif,一種圖像文件格式,數據存儲與JPEG格式是徹底相同的,實際上Exif格式就是在JPEG格式頭部插入了數碼照片的信息。前端

php處理圖片的exif,首先要在php.ini中開啓mbstrig和exif模塊服務器

clipboard.png

$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圖片旋轉的問題,歡迎你們多多指教!函數

相關文章
相關標籤/搜索