feature:2284

Rename $conf['image_library'] into $conf['graphics_library']
Display library used in admin intro page.

git-svn-id: http://piwigo.org/svn/trunk@10684 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
patdenice
2011-04-29 17:10:00 +00:00
parent 920f8b443a
commit 90825d08ea
7 changed files with 79 additions and 38 deletions
+41 -36
View File
@@ -57,8 +57,6 @@ class pwg_image
function __construct($source_filepath, $library=null)
{
global $conf;
$this->source_filepath = $source_filepath;
trigger_action('load_image_library', array(&$this) );
@@ -75,40 +73,9 @@ class pwg_image
die('[Image] unsupported file extension');
}
if (is_null($library))
if (!($this->library = self::get_library($library, $extension)))
{
$library = $conf['image_library'];
}
// Choose image library
switch (strtolower($library))
{
case 'auto':
case 'imagick':
if ($extension != 'gif' and self::is_imagick())
{
$this->library = 'imagick';
break;
}
case 'ext_imagick':
if ($extension != 'gif' and self::is_ext_imagick())
{
$this->library = 'ext_imagick';
break;
}
case 'gd':
if (self::is_gd())
{
$this->library = 'gd';
break;
}
default:
if ($library != 'auto')
{
// Requested library not available. Try another library
return self::__construct($source_filepath, 'auto');
}
die('No image library available on your server.');
die('No image library available on your server.');
}
$class = 'image_'.$this->library;
@@ -304,7 +271,7 @@ class pwg_image
{
return false;
}
@exec($conf['ext_imagick_dir'].'convert', $returnarray, $returnvalue);
@exec($conf['ext_imagick_dir'].'convert -version', $returnarray, $returnvalue);
if (!$returnvalue and !empty($returnarray[0]) and preg_match('/ImageMagick/i', $returnarray[0]))
{
return true;
@@ -317,6 +284,44 @@ class pwg_image
return function_exists('gd_info');
}
static function get_library($library=null, $extension=null)
{
global $conf;
if (is_null($library))
{
$library = $conf['image_library'];
}
// Choose image library
switch (strtolower($library))
{
case 'auto':
case 'imagick':
if ($extension != 'gif' and self::is_imagick())
{
return 'imagick';
}
case 'ext_imagick':
if ($extension != 'gif' and self::is_ext_imagick())
{
return 'ext_imagick';
}
case 'gd':
if (self::is_gd())
{
return 'gd';
}
default:
if ($library != 'auto')
{
// Requested library not available. Try another library
return self::get_library('auto');
}
}
return false;
}
function destroy()
{
if (method_exists($this->image, 'destroy'))