Вход Регистрация
Файл: vendor/intervention/image/src/Drivers/Imagick/Modifiers/OrientModifier.php
Строк: 81
<?php

declare(strict_types=1);

namespace 
InterventionImageDriversImagickModifiers;

use 
Imagick;
use 
ImagickException;
use 
InterventionImageExceptionsModifierException;
use 
InterventionImageInterfacesImageInterface;
use 
InterventionImageInterfacesSpecializedInterface;
use 
InterventionImageModifiersOrientModifier as GenericOrientModifier;

class 
OrientModifier extends GenericOrientModifier implements SpecializedInterface
{
    
/**
     * @throws ModifierException
     */
    
public function apply(ImageInterface $image): ImageInterface
    
{
        
$orientation $image->core()->native()->getImageOrientation();
        
$orientation $orientation === Imagick::ORIENTATION_UNDEFINED
            
$image->core()->meta()->get('originalImageOrientation'0)
            : 
$orientation;

        try {
            
$result match ($orientation) {
                
Imagick::ORIENTATION_TOPRIGHT
                
=> $image->core()->native()->flopImage(), // 2

                
Imagick::ORIENTATION_BOTTOMRIGHT
                
=> $image->core()->native()->rotateImage('#000'180), // 3

                
Imagick::ORIENTATION_BOTTOMLEFT
                
=> $image->core()->native()->rotateImage('#000'180) && $image->core()->native()->flopImage(), // 4

                
Imagick::ORIENTATION_LEFTTOP
                
=> $image->core()->native()->rotateImage('#000'90) && $image->core()->native()->flopImage(), // 5

                
Imagick::ORIENTATION_RIGHTTOP
                
=> $image->core()->native()->rotateImage('#000'90), // 6

                
Imagick::ORIENTATION_RIGHTBOTTOM
                
=> $image->core()->native()->rotateImage('#000'270) && $image->core()->native()->flopImage(), // 7

                
Imagick::ORIENTATION_LEFTBOTTOM
                
=> $image->core()->native()->rotateImage('#000'270), // 8

                
default => 'value',
            };

            
// set new orientation in image
            
$result $result && $image->core()->native()->setImageOrientation(Imagick::ORIENTATION_TOPLEFT);

            if (
$result === false) {
                throw new 
ModifierException(
                    
'Failed to apply ' self::class . ', unable to process rotation of image',
                );
            }
        } catch (
ImagickException $e) {
            throw new 
ModifierException(
                
'Failed to apply ' self::class . ', unable to process rotation',
                
previous$e,
            );
        }

        return 
$image;
    }
}
Онлайн: 2
Реклама