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函数
我尝试了很多在互联网上找到的解决方案,但没有一个对我有用。我正在尝试根据 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函数