Autorotate.php in Imagick 8
File
src/Plugin/ImageToolkit/Operation/imagick/Autorotate.php
View source
<?php
namespace Drupal\imagick\Plugin\ImageToolkit\Operation\imagick;
use Imagick;
use ImagickPixel;
class Autorotate extends ImagickOperationBase {
protected function arguments() {
return [];
}
protected function process(Imagick $resource, array $arguments) {
$orientation = $resource
->getImageOrientation();
switch ($orientation) {
case Imagick::ORIENTATION_BOTTOMRIGHT:
case Imagick::ORIENTATION_BOTTOMLEFT:
$resource
->rotateimage(new ImagickPixel(), 180);
break;
case Imagick::ORIENTATION_RIGHTTOP:
case Imagick::ORIENTATION_LEFTTOP:
$resource
->rotateimage(new ImagickPixel(), 90);
break;
case Imagick::ORIENTATION_LEFTBOTTOM:
case Imagick::ORIENTATION_RIGHTBOTTOM:
$resource
->rotateimage(new ImagickPixel(), -90);
break;
}
if (in_array($orientation, [
Imagick::ORIENTATION_TOPRIGHT,
Imagick::ORIENTATION_BOTTOMLEFT,
Imagick::ORIENTATION_LEFTTOP,
Imagick::ORIENTATION_RIGHTBOTTOM,
])) {
$resource
->flopImage();
}
return $resource
->setImageOrientation(Imagick::ORIENTATION_TOPLEFT);
}
}