Вход Регистрация
Файл: gapps/vendor/intervention/image/src/Intervention/Image/AbstractDriver.php
Строк: 171
<?php

namespace InterventionImage;

abstract class 
AbstractDriver
{
    
/**
     * Decoder instance to init images from
     *
     * @var InterventionImageAbstractDecoder
     */
    
public $decoder;

    
/**
     * Image encoder instance
     *
     * @var InterventionImageAbstractEncoder
     */
    
public $encoder;

    
/**
     * Creates new image instance
     *
     * @param  integer $width
     * @param  integer $height
     * @param  string  $background
     * @return InterventionImageImage
     */
    
abstract public function newImage($width$height$background);

    
/**
     * Reads given string into color object
     *
     * @param  string $value
     * @return AbstractColor
     */
    
abstract public function parseColor($value);

    
/**
     * Checks if core module installation is available
     *
     * @return boolean
     */
    
abstract protected function coreAvailable();

    
/**
     * Returns clone of given core
     *
     * @return mixed
     */
    
public function cloneCore($core)
    {
        return clone 
$core;
    }

    
/**
     * Initiates new image from given input
     *
     * @param  mixed $data
     * @return InterventionImageImage
     */
    
public function init($data)
    {
        return 
$this->decoder->init($data);
    }

    
/**
     * Encodes given image
     *
     * @param  Image   $image
     * @param  string  $format
     * @param  integer $quality
     * @return InterventionImageImage
     */
    
public function encode($image$format$quality)
    {
        return 
$this->encoder->process($image$format$quality);
    }

    
/**
     * Executes named command on given image
     *
     * @param  Image  $image
     * @param  string $name
     * @param  array $arguments
     * @return InterventionImageCommandsAbstractCommand
     */
    
public function executeCommand($image$name$arguments)
    {
        
$commandName $this->getCommandClassName($name);
        
$command = new $commandName($arguments);
        
$command->execute($image);

        return 
$command;
    }

    
/**
     * Returns classname of given command name
     *
     * @param  string $name
     * @return string
     */
    
private function getCommandClassName($name)
    {
        
$drivername $this->getDriverName();
        
$classnameLocal sprintf('InterventionImage%sCommands%sCommand'$drivernameucfirst($name));
        
$classnameGlobal sprintf('InterventionImageCommands%sCommand'ucfirst($name));

        if (
class_exists($classnameLocal)) {
            return 
$classnameLocal;
        } elseif (
class_exists($classnameGlobal)) {
            return 
$classnameGlobal;
        }

        throw new 
InterventionImageExceptionNotSupportedException(
            
"Command ({$name}) is not available for driver ({$drivername})."
        
);
    }

    
/**
     * Returns name of current driver instance
     *
     * @return string
     */
    
public function getDriverName()
    {
        
$reflect = new ReflectionClass($this);
        
$namespace $reflect->getNamespaceName();

        return 
substr(strrchr($namespace"\"), 1);
    }
}
Онлайн: 0
Реклама