Проблема с степлером PHP и Imagine Image

Я получаю некоторое несоответствие с функцией автоматического поворота Stapler, и надеялся, что кто-нибудь сможет объяснить, что происходит.

Мои стили определены на модели Eloquent следующим образом:

'styles' => [
'thumbnail' => [
'dimensions' => '300',
'auto_orient' => true,
'convert_options' => ['quality' => 100],
],
'standard' => [
'dimensions' => 'x275',
'auto_orient' => true,
'convert_options' => ['quality' => 100],
],
'zoom' => function($file, $imagine) {
$image = $imagine
->setMetadataReader(new \Imagine\Image\Metadata\ExifMetadataReader)
->open($file->getRealPath());

// Auto rotate the image
$filter = new \Imagine\Filter\Basic\Autorotate;
$filter->apply($image);

// Get the current size
$size = $image->getSize();

// Scale down to zoom size only if
// image is wide enough.
if ($size->getWidth() > 1280) {
$newSize = $size->widen(1280);
$image->resize($newSize);
}

return $image;
}
]

Проблема в том, что для конкретного изображения zoom стиль не работает правильно. Поворот изображения на 90 градусов, хотя оригинал уже в вертикальном положении.

Вот скриншот исходного изображения, вы можете видеть, что оно в вертикальном положении:

введите описание изображения здесь

Вот снимок экрана изображения после обработки zoom стиль. Он повернут на 90 градусов:

введите описание изображения здесь

Как видите, у меня тоже есть autorotate установить в true для thumbnail а также standard стилей, но эти изображения не поворачиваются на 90 градусов и отображаются правильно после обработки.

Странно то, что когда я проверяю данные ориентации exif для исходного изображения, оно имеет значение 6, что означает, что изображение должно быть повернуто на 90 градусов. Если это так, то почему другие стили также не поворачиваются?

$imagine = new Imagine\Imagick\Imagine;
$image = $imagine->open('https://s3.amazonaws.com/path/to/original/image.jpg');
echo $image->metadata()->toArray()['ifd0.Orientation'];

// Output is 6

Поэтому мне интересно, почему exif-ориентация равна 6, если это изображение уже в вертикальном положении. Кроме того, почему изображение поворачивается только для zoom стиль?

2

Решение

Похоже, мне нужно return $image->strip() для того, чтобы удалить данные EXIF ​​после автоматического поворота изображения.

0

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

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

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