Laravel Image Intervention избегает поворота

Я загружаю изображение iPhone, снятое камерой iPhone в вертикальном положении, с размерами 2448x3264, и поскольку эти размеры настолько велики (?), когда я создаю большой палец 600x360, он автоматически поворачивается в горизонтальное положение.

Что я пробовал без какого-либо успеха:

  • Изменить размеры большого пальца
  • Используйте функцию fit
  • Используйте функцию resize
  • Используйте функцию crop
  • Используйте методы upsize и aspectRatio
  • Установите только height и используйте null на width
  • Установите только width и используйте null на height

Большой палец должен иметь максимальную высоту 360, и я не против, если ширина не 600.

$imageResize = Image::make($originalFile);
$imageResize->fit(600, 360, function ($constraint)
{
    $constraint->upsize();
});
$imageResize->save($thumbPath);

Моя цель - иметь:

  • Миниатюры в вертикальном положении, если исходная фотография вертикальная
  • Миниатюры по горизонтали, если исходная фотография горизонтальна

Как я могу этого добиться?

При сохранении исходный файл находится в исходном вращении? Итак, если вы вручную перешли к месту, файл находится в правильном вращении с размерами по умолчанию? Я нашел здесь некоторую информацию, которая может указывать на то, что Laravel меняет ее при загрузке.

user5283119 10.06.2019 16:04

@swonder да, исходное изображение сохраняется с вращением/размерами по умолчанию.

Linesofcode 10.06.2019 16:09

Не могли бы вы взглянуть на эта проблема с гитхабом, поскольку он, похоже, встроен в ваш вопрос. Это может быть связано с функцией fit().

user5283119 10.06.2019 16:12

@swonder метод orientate решен, вы хотите настроить его как ответ, чтобы я мог принять?

Linesofcode 10.06.2019 16:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
4
3 268
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Согласно эта проблема с гитхабом вам может потребоваться запустить orientate() до fit():

$imageResize = Image::make($originalFile)
    ->orientate()
    ->fit(600, 360, function ($constraint) {
        $constraint->upsize();
    })
    ->save($thumbPath);
Ответ принят как подходящий

Как говорилось ранее, изображение сохраняется в правильной ориентации, и в момент изменения размера вы запускаете функцию fit(), в которой я смог найти немного информации по этому вопросу, работающую рядом с той, которая предполагает, что вам нужно использовать orientate() с подгонкой.

Пример здесь:

$imageResize = Image::make($originalFile);
$imageResize->orientate()
->fit(600, 360, function ($constraint) {
    $constraint->upsize();
})
->save($thumbPath);

Я рад, что это помогло.

$img = Image::make($originalFile);

$img->orientate();
$img->resize(1024, null, function($constraint){
    $constraint->upsize();
    $constraint->aspectRatio();
});
$img->save();

Хотя ваш фрагмент кода может дать ответ на вопрос, предоставление дополнительного контекста относительно того, почему и/или как работает ваш фрагмент кода, повышает его ценность в долгосрочной перспективе.

Sven Eberth 13.06.2021 15:20

Другие вопросы по теме