You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

56 lines
1.6 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
namespace Tiki\Lib\Image;
/**
* Factory class to select the right library for images manipulation.
* We handle gd, imagemagick 1.x and 2.x.
*/
class Image
{
/**
* Auto-detect php extension to use as image lib.
* This assumes imagick is better than gd, so try to find it first.
*
* @param $image
* @param bool $isFile
* @param string $format
* @return ImagickNew|ImagickOld|Gd|null
*/
public static function create($image, $isFile = false, $format = 'jpeg')
{
$libEntity = null;
if (class_exists('Imagick')) {
$libEntity = new ImagickNew($image, $isFile, $format); // create Imagick 2.x entity
} elseif (function_exists('imagick_rotate')) {
$libEntity = new ImagickOld($image, $isFile, $format); // create Imagick 1.x entity
} elseif (function_exists('gd_info')) {
$libEntity = new Gd($image, $isFile, $format); // create GD entity
}
return $libEntity;
}
/**
* Check if the one of the libraries required is available.
*
* @return bool
*/
public static function isAvailable()
{
if (class_exists('Imagick')) {
return true;
} elseif (function_exists('imagick_rotate')) {
return true;
} elseif (function_exists('gd_info')) {
return true;
}
return false;
}
}