Exif 数据不旋转图像 php

Exif data doesn't roate the image php

我尝试了很多在互联网上找到的解决方案,但没有一个对我有用。我正在尝试根据 exif 数据调整和旋转图像,但图像没有旋转。调整图像大小工作正常。但是旋转不起作用。以下是我用来执行此操作的函数。

function resize_imageb($newbfile,$max_resolution){
    if(file_exists($newbfile)){
        $original_image = imagecreatefromjpeg($newbfile);   
        
        $exif = exif_read_data($newbfile, 0, true);
        
        if(!empty($exif['Orientation'])) {
            switch($exif['Orientation']) {
            case 8:
                $original_image = imagerotate($original_image,90,0);
                break;
            case 3:
                $original_image = imagerotate($original_image,180,0);
                break;
            case 6:
                $original_image = imagerotate($original_image,-90,0);
                break;
            } 
        }
        
        $original_width = imagesx($original_image);
        $original_height = imagesy($original_image);
        
        $ratio = $max_resolution/$original_width;
        $new_width = $max_resolution;
        $new_height = $original_height * $ratio;
        
        if($new_height > $max_resolution){
            $ratio = $max_resolution / $original_height;
            $new_height = $max_resolution;
            $new_width = $original_width * $ratio;
        }
        if($original_image){
            $new_image = imagecreatetruecolor($new_width,$new_height);
            imagecopyresampled($new_image, $original_image, 0, 0, 0, 0,$new_width, $new_height, $original_width, $original_height);
            imagejpeg($new_image,$newbfile,100);
            imagedestroy($original_image);
            imagedestroy($new_image);
        }
    }
}

当我检查调整大小后的图像时,方向信息已从 exif 数据中消失,但我上传的原始图像确实有方向信息。我不确定我错过了什么或做错了什么。有人可以帮我解决这个问题吗?

我没有在一个函数中执行第 2 部分(调整大小和旋转),而是创建了两个函数,一个用于旋转 created by Wes,然后用于调整大小。先调用旋转函数再调用resize函数