Skip to content

Commit

Permalink
feature:2284
Browse files Browse the repository at this point in the history
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
  • Loading branch information
patdenice committed Apr 29, 2011
1 parent 920f8b4 commit 90825d0
Show file tree
Hide file tree
Showing 7 changed files with 79 additions and 38 deletions.
77 changes: 41 additions & 36 deletions admin/include/image.class.php
Expand Up @@ -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) );
Expand All @@ -75,40 +73,9 @@ function __construct($source_filepath, $library=null)
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;
Expand Down Expand Up @@ -304,7 +271,7 @@ static function is_ext_imagick()
{
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;
Expand All @@ -317,6 +284,44 @@ static function is_gd()
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'))
Expand Down
31 changes: 31 additions & 0 deletions admin/intro.php
Expand Up @@ -29,6 +29,7 @@
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 |
Expand Down Expand Up @@ -258,6 +259,36 @@
);
}

// 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 |
// +-----------------------------------------------------------------------+
Expand Down
2 changes: 1 addition & 1 deletion admin/photos_add_settings.php
Expand Up @@ -111,7 +111,7 @@
$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
)
);
Expand Down
3 changes: 3 additions & 0 deletions admin/themes/default/template/intro.tpl
Expand Up @@ -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>

Expand Down
1 change: 1 addition & 0 deletions language/en_UK/admin.lang.php
Expand Up @@ -830,4 +830,5 @@
$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';
?>
1 change: 1 addition & 0 deletions language/fr_FR/admin.lang.php
Expand Up @@ -841,4 +841,5 @@
$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 changes: 1 addition & 1 deletion ws.php
Expand Up @@ -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),
Expand Down

0 comments on commit 90825d0

Please sign in to comment.