PHP или CSS: как правильно вращать изображения, загруженные с iphone?

У нас есть функция, которая позволяет пользователям загружать изображения на веб-сайт, который может быть с рабочего стола или взят с любого мобильного телефона. Но с некоторых телефонов, таких как Iphone, изображения, снятые вертикально, вращаются неправильно. Нам нужно, чтобы они правильно отображались на любом устройстве при загрузке с любого устройства.

Я нашел несколько похожих вопросов, но их решение, похоже, не сработало полностью. Мне нужно либо повернуть их правильно в php, как только они загружены:

if(isset($_FILES["submit_image"])) {

$target_dir = "uploads/images/";
$name = $_FILES['submit_image']['name'];
$size = $_FILES['submit_image']['size'];
$tmp_name = $_FILES['submit_image']['tmp_name'];

//make sure the image is roated correctly? I tried this code that I found in other SO questions but then it doesn't seem to be saving it
// START ORIENTATION FIX
$info = getimagesize($tmp_name);
$image = imagecreatefrompng($tmp_name);

if($info['mime'] == 'image/jpeg') {
$exif = exif_read_data($tmp_name);
if(isset($exif['Orientation'])) {
$orientation = $exif['Orientation'];
}
}

if(isset($orientation)) { //rotate to match the orientation
switch($orientation) {
case 3:
$image = imagerotate($image, 180, 0);
break;
case 6:
$image = imagerotate($image, -90, 0);
break;
case 8:
$image = imagerotate($image, 90, 0);
break;
}
}
if(isset($image)) { //get the variables of the rotated image
$tmp_name = $image["tmp_name"];
$name = $image['name'];
$size = $image['size'];
}
// END ORIENTATION FIX

/*doing some other checks here for image name, size, and mime type
...
*/

$path = calculate_file_path($target_dir, $name);
if (move_uploaded_file($tmp_name, $path) == true) {
$query = "UPDATE {$table} SET {$column} = '{$path}' WHERE id = {$new_pro_id}";
$result = mysqli_query($db, $query);
if ($result) {
//saved
}
else{
//failed
}
}
}

Или, возможно, исправьте их позже с помощью css, когда сайт должен их отобразить:

.profile_img
{
image-orientation: from-image;
}

Но ни один, казалось, не работал. опция php полностью разбила их, а опция css не помогла исправить ориентацию.

РЕДАКТИРОВАТЬ
Я получаю предупреждение / сообщение об ошибке:
exif_read_data () ожидает, что параметр 1 будет правильным путем, массив задан в …

Но в этой точке нет пути к файлу. Все, что у меня есть, это $ _FILES [‘submit_image’], которое приходит из поля type = «file» в html-форме. Я уверен, что эта переменная содержит всю информацию, которая будет в пути к файлу, потому что я использую ее позже, чтобы сохранить на сервере.

Есть идеи?
Спасибо 🙂

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]