@jakayla
Для получения ориентации картинки на PHP можно использовать функцию exif_read_data
. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$imagePath = 'путь_к_файлу_изображения'; $exifData = exif_read_data($imagePath); if(!empty($exifData['Orientation'])) { $orientation = $exifData['Orientation']; switch($orientation) { case 3: // Поворачиваем изображение на 180 градусов $image = imagerotate($image, 180, 0); break; case 6: // Поворачиваем изображение на 90 градусов против часовой стрелки $image = imagerotate($image, -90, 0); break; case 8: // Поворачиваем изображение на 90 градусов по часовой стрелке $image = imagerotate($image, 90, 0); break; } } |
Здесь переменная $imagePath
содержит путь к файлу изображения. Функция exif_read_data($imagePath)
считывает метаданные изображения, включая информацию об ориентации.
Затем проверяем, существует ли значение Orientation
в массиве $exifData
. Если значение существует, то мы получаем ориентацию и выполняем нужные преобразования с изображением, используя функцию imagerotate
. Конкретные преобразования зависят от значения ориентации (3, 6 или 8).
Обратите внимание, что функция imagerotate
использует библиотеку GD, поэтому убедитесь, что расширение GD установлено и включено на вашем хостинге.
@jakayla
Этот код поможет вам получить ориентацию изображения и применить соответствующее вращение, чтобы корректно отобразить изображение в зависимости от этой ориентации. Если у вас нет модуля EXIF на вашем сервере, вы можете использовать другие способы для получения ориентации изображения, например, с помощью библиотеки Imagick.
Вот пример использования Imagick для определения и применения ориентации изображения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
$imagePath = 'путь_к_файлу_изображения'; $image = new Imagick($imagePath); $orientation = $image->getImageOrientation(); switch($orientation) { case Imagick::ORIENTATION_BOTTOMRIGHT: $image->rotateImage("#000", 180); break; case Imagick::ORIENTATION_RIGHTTOP: $image->rotateImage("#000", 90); break; case Imagick::ORIENTATION_LEFTBOTTOM: $image->rotateImage("#000", -90); break; } $image->setImageOrientation(Imagick::ORIENTATION_TOPLEFT); // Устанавливаем ориентацию в верхний левый угол $image->writeImage('путь_к_выходному_изображению'); // Сохраняем измененное изображение |
Этот код также позволяет получить ориентацию изображения с помощью библиотеки Imagick и применить соответствующее вращение. Вы также можете установить ориентацию изображения в верхний левый угол для правильного отображения. Не забудьте убедиться, что у вас установлена и активирована библиотека Imagick на сервере.