Я получаю некоторую несогласованность с функциями автотрассировки Степлера и надеялся, что кто-то сможет объяснить, что происходит.PHP Stapler and Imagine Image autororate issue
Моих стилей определяются следующим образом на красноречивых моделях:
'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
значение ИСТИНА для 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
?