1
我收到與訂書機的自動旋轉功能不一致,並希望有人能解釋發生了什麼。PHP訂書機和Imagine圖像autororate問題
我的風格被定義在雄辯的模型如下:
'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
風格?