Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
42.86% covered (warning)
42.86%
6 / 14
CRAP
72.41% covered (success)
72.41%
21 / 29
Image
0.00% covered (danger)
0.00%
0 / 1
42.86% covered (warning)
42.86%
6 / 14
26.58
72.41% covered (success)
72.41%
21 / 29
 getAvailableAdapters
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 isAvailable
100.00% covered (success)
100.00%
1 / 1
6
100.00% covered (success)
100.00%
14 / 14
 loadGd
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 loadGmagick
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 loadImagick
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 loadGdFromString
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 loadGmagickFromString
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 loadImagickFromString
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 createGd
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 createGdIndex
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 createGmagick
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 createGmagickIndex
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 createImagick
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 createImagickIndex
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
<?php
/**
 * Pop PHP Framework (http://www.popphp.org/)
 *
 * @link       https://github.com/popphp/popphp-framework
 * @author     Nick Sagona, III <dev@nolainteractive.com>
 * @copyright  Copyright (c) 2009-2017 NOLA Interactive, LLC. (http://www.nolainteractive.com)
 * @license    http://www.popphp.org/license     New BSD License
 */
/**
 * @namespace
 */
namespace Pop\Image;
/**
 * Image factory class
 *
 * @category   Pop
 * @package    Pop\Image
 * @author     Nick Sagona, III <dev@nolainteractive.com>
 * @copyright  Copyright (c) 2009-2017 NOLA Interactive, LLC. (http://www.nolainteractive.com)
 * @license    http://www.popphp.org/license     New BSD License
 * @version    3.0.0
 */
class Image
{
    /**
     * Get the available image adapters
     *
     * @return array
     */
    public static function getAvailableAdapters()
    {
        return [
            'gd'      => function_exists('gd_info'),
            'gmagick' => (class_exists('Gmagick', false)),
            'imagick' => (class_exists('Imagick', false))
        ];
    }
    /**
     * Determine if the adapter is available
     *
     * @param  string $adapter
     * @return boolean
     */
    public static function isAvailable($adapter)
    {
        $result = false;
        switch (strtolower($adapter)) {
            case 'gd':
                $result = function_exists('gd_info');
                break;
            case 'graphicsmagick':
            case 'gmagick':
                $result = (class_exists('Gmagick', false));
                break;
            case 'imagemagick':
            case 'imagick':
                $result = (class_exists('Imagick', false));
                break;
        }
        return $result;
    }
    /**
     * Load the image resource from the existing image file into a Gd object
     *
     * @param  string $image
     * @return Adapter\Gd
     */
    public static function loadGd($image)
    {
        return Gd::load($image);
    }
    /**
     * Load the image resource from the existing image file into a Gmagick object
     *
     * @param  string $image
     * @return Adapter\Gmagick
     */
    public static function loadGmagick($image)
    {
        return Gmagick::load($image);
    }
    /**
     * Load the image resource from the existing image file into a Imagick object
     *
     * @param  string $image
     * @return Adapter\Imagick
     */
    public static function loadImagick($image)
    {
        return Imagick::load($image);
    }
    /**
     * Load the image resource from data into a Gd object
     *
     * @param  string $data
     * @param  string $name
     * @return Adapter\Gd
     */
    public static function loadGdFromString($data, $name = null)
    {
        return Gd::loadFromString($data, $name);
    }
    /**
     * Load the image resource from data into a Gmagick object
     *
     * @param  string $data
     * @param  string $name
     * @return Adapter\Gmagick
     */
    public static function loadGmagickFromString($data, $name = null)
    {
        return Gmagick::loadFromString($data, $name);
    }
    /**
     * Load the image resource from data into a Imagick object
     *
     * @param  string $data
     * @param  string $name
     * @return Adapter\Imagick
     */
    public static function loadImagickFromString($data, $name = null)
    {
        return Imagick::loadFromString($data, $name);
    }
    /**
     * Create a new image resource and load it into a Gd object
     *
     * @param  int    $width
     * @param  int    $height
     * @param  string $image
     * @return Adapter\Gd
     */
    public static function createGd($width, $height, $image = null)
    {
        return Gd::create($width, $height, $image);
    }
    /**
     * Create a new indexed image resource and load it into a Gd object
     *
     * @param  int    $width
     * @param  int    $height
     * @param  string $image
     * @return Adapter\Gd
     */
    public static function createGdIndex($width, $height, $image = null)
    {
        return Gd::createIndex($width, $height, $image);
    }
    /**
     * Create a new image resource and load it into a Gmagick object
     *
     * @param  int    $width
     * @param  int    $height
     * @param  string $image
     * @return Adapter\Gmagick
     */
    public static function createGmagick($width, $height, $image = null)
    {
        return Gmagick::create($width, $height, $image);
    }
    /**
     * Create a new indexed image resource and load it into a Gmagick object
     *
     * @param  int    $width
     * @param  int    $height
     * @param  string $image
     * @return Adapter\Gmagick
     */
    public static function createGmagickIndex($width, $height, $image = null)
    {
        return Gmagick::createIndex($width, $height, $image);
    }
    /**
     * Create a new image resource and load it into a Imagick object
     *
     * @param  int    $width
     * @param  int    $height
     * @param  string $image
     * @return Adapter\Imagick
     */
    public static function createImagick($width, $height, $image = null)
    {
        return Imagick::create($width, $height, $image);
    }
    /**
     * Create a new indexde image resource and load it into a Imagick object
     *
     * @param  int    $width
     * @param  int    $height
     * @param  string $image
     * @return Adapter\Imagick
     */
    public static function createImagickIndex($width, $height, $image = null)
    {
        return Imagick::createIndex($width, $height, $image);
    }
}