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

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'))

View file

@ -29,6 +29,7 @@ if (!defined('PHPWG_ROOT_PATH'))
include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
include_once(PHPWG_ROOT_PATH.'admin/include/check_integrity.class.php');
include_once(PHPWG_ROOT_PATH.'admin/include/c13y_internal.class.php');
include_once(PHPWG_ROOT_PATH.'admin/include/image.class.php');
// +-----------------------------------------------------------------------+
// | Check Access and exit when user status is not ok |
@ -258,6 +259,36 @@ if ($nb_comments > 0)
);
}
// graphics library
switch (pwg_image::get_library())
{
case 'imagick':
$library = 'ImageMagick';
$img = new Imagick();
$version = $img->getVersion();
if (preg_match('/ImageMagick \d+\.\d+\.\d+-?\d*/', $version['versionString'], $match))
{
$library = $match[0];
}
$template->assign('GRAPHICS_LIBRARY', $library);
break;
case 'ext_imagick':
$library = 'External ImageMagick';
exec($conf['ext_imagick_dir'].'convert -version', $returnarray);
if (preg_match('/Version: ImageMagick (\d+\.\d+\.\d+-?\d*)/', $returnarray[0], $match))
{
$library .= ' ' . $match[1];
}
$template->assign('GRAPHICS_LIBRARY', $library);
break;
case 'gd':
$gd_info = gd_info();
$template->assign('GRAPHICS_LIBRARY', 'GD '.@$gd_info['GD Version']);
break;
}
// +-----------------------------------------------------------------------+
// | sending html code |
// +-----------------------------------------------------------------------+

View file

@ -111,7 +111,7 @@ foreach (array_keys($upload_form_config) as $field)
$template->assign(
array(
'F_ADD_ACTION'=> PHOTOS_ADD_BASE_URL,
'MANAGE_HD' => (pwg_image::is_imagick() or pwg_image::is_ext_imagick()),
'MANAGE_HD' => pwg_image::get_library() != 'gd',
'values' => $form_values
)
);

View file

@ -53,6 +53,9 @@ jQuery().ready(function(){
<li>{'Operating system'|@translate}: {$OS}</li>
<li>PHP: {$PHP_VERSION} (<a href="{$U_PHPINFO}" class="externalLink">{'Show info'|@translate}</a>) [{$PHP_DATATIME}]</li>
<li>{$DB_ENGINE}: {$DB_VERSION} [{$DB_DATATIME}]</li>
{if isset($GRAPHICS_LIBRARY)}
<li>{'Graphics Library'|@translate}: {$GRAPHICS_LIBRARY}</li>
{/if}
</ul>
</dd>

View file

@ -830,4 +830,5 @@ $lang['Width'] = 'Width';
$lang['Height'] = 'Height';
$lang['Follow Orientation'] = 'Follow Orientation';
$lang['If you want to regenerate thumbnails, please go to the <a href="%s">Batch Manager</a>.'] = 'If you want to regenerate thumbnails, please go to the <a href="%s">Batch Manager</a>.';
$lang['Graphics Library'] = 'Graphics Library';
?>

View file

@ -841,4 +841,5 @@ $lang['Width'] = 'Largeur';
$lang['Height'] = 'Hauteur';
$lang['Follow Orientation'] = "Respecter l'orientation";
$lang['If you want to regenerate thumbnails, please go to the <a href="%s">Batch Manager</a>.'] = 'Si vous voulez régénérer des miniatures, merci de vous rendre dans la <a href="%s">Gestion par lot</a>.';
$lang['Graphics Library'] = 'Bibliothèque graphique';
?>

2
ws.php
View file

@ -412,7 +412,7 @@ function ws_addDefaultMethods( $arr )
'image_path' => array('default' => null),
'type' => array('default' => 'thumbnail'),
'automatic_rotation' => array('default' => $conf['upload_form_automatic_rotation']),
'library' => array('default' => $conf['image_library']),
'library' => array('default' => $conf['graphics_library']),
'maxwidth' => array('default' => null),
'maxheight' => array('default' => null),
'crop' => array('default' => null),