PHP上傳圖片寬高翻轉

一:問題說明
PHP處理上傳圖片時候會遇到圖片寬高翻轉的問題,原圖不會,但是縮略圖就會出現(xiàn);
大部分是出現(xiàn)在 width < height的情況下;getimagesize()函數(shù)獲取到的寬高會是相反的;
原因是iphone手機拍照后圖片參數(shù)問題;安卓設備大部分正常;
二:解決思路
1、前端利用exif.js解決,不用后端處理;
2、后端PHP利用exif擴展進行解決!(exif_read_data() 函數(shù)必須有exif擴展才能使用);
3、后端處理邏輯如下:

//處理iphone上傳圖片出現(xiàn)的圖片寬高翻轉問題(原圖無需處理)--注意服務器需要開啟exif擴展
            $myImg     = 'D:\www\test\abc.jpg';          //原圖地址
           $new_thumb = 'D:\www\test\cde.jpg';       //處理后地址
           $exif      = exif_read_data($myImg);
            if (!empty($exif['Orientation'])) { //Orientation說明: 1=旋轉0°,3=逆時針180°,6=順時針90°,8=逆時針90°
                $image = imagecreatefromstring(file_get_contents($myImg));
                switch ($exif['Orientation']) {
                    case 8:
                        $image = imagerotate($image, 90, 0);
                        break;
                    case 3:
                        $image = imagerotate($image, 180, 0);
                        break;
                    case 6:
                        $image =  imagerotate($image, -90, 0);
                        break;
                }
                imagejpeg($image, $new_thumb, 70);
                imagedestroy($image);
                $myImg = $new_thumb;
            }
 //處理iphone上傳圖片出現(xiàn)的圖片寬高翻轉問題(原圖無需處理)--注意服務器需要開啟exif擴展
 //先處理原圖后再進行圖片縮略、裁剪等操作;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容