PHP getimagesize() 尺寸不對,直的變橫的

明明就是直的,你程式有問題,還是眼睛有問題

主要原因是圖片有帶一個旋轉的參數 Orientation
原本是橫的圖片,因為有帶 Orientation 這個參數所以在windows打開看起來是直的
但骨子裡他是橫的圖片,PHP也覺得是橫的,但客戶覺得明明就是直的,是你程式有問題
好吧!! 所以在PHP圖片輸出前把它轉回來
假設圖片轉了90度,就用PHP再旋轉-90度把它轉回來,就跟客戶看的一樣是直的了

可參考下列程式:

<?php

$image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name']));
$exif = exif_read_data($_FILES['image_upload']['tmp_name']);
if(!empty($exif['Orientation'])) {
    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;
    }
}
// $image now contains a resource with the image oriented correctly
?>

參考:

如果文章對您很有幫助
請我喝杯咖啡吧

Bitcoin 比特幣錢包:

18fCwNnEJ7UfMNS3GcUczPNa72NMsWcvaU



ann71727

READ  PHP 清除字串頭尾空白

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料