SunshinePHP Developer Conference 2015

gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_info現在インストールされているGDライブラリに関する情報を取得する

説明

array gd_info ( void )

インストールされている GD ライブラリのバージョンとスペックに関する情報を取得します。

返り値

連想配列を返します。

gd_info() が返す配列の要素
属性 意味
GD Version string。インストールされている libgdのバージョン
FreeType Support boolean value. TRUE の場合FreeTypeサポートはインストールされている
FreeType Linkage string値。FreeTypeのリンク方法の情報。 'with freetype', 'with TTF library', 'with unknown library'など。 FreeType SupportTRUEにセットされている場合にのみ この要素が定義されます。
T1Lib Support boolean値。 T1Libサポートが含まれている場合にTRUE
GIF Read Support boolean値。 GIF画像の読み込み がサポートされている場合にTRUE
GIF Create Support boolean値。 GIF画像の生成 がサポートされている場合にTRUE
JPEG Support boolean値。 JPEGサポートが含まれている場合にTRUE
PNG Support boolean値。 PNGサポートが含まれている場合にTRUE
WBMP Support boolean値。 WBMPサポートが含まれている場合にTRUE
XBM Support boolean値。 XBMサポートが含まれている場合にTRUE
WebP Support boolean 値。 WebP サポートが含まれている場合にTRUE

注意:

PHP 5.3.0 より前のバージョンでは、JPEG Support 属性は JPG Support という名前でした。

例1 gd_info() の使用法

<?php
var_dump
(gd_info());
?>

上の例の出力は、 たとえば以下のようになります。

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPEG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

変更履歴

バージョン 説明
5.5.0 WebP Support が追加されました。
5.3.0 JPG Support 属性が JPEG Support という名前に変わりました。

参考

  • imagepng() - PNG イメージをブラウザまたはファイルに出力する
  • imagejpeg() - 画像をブラウザあるいはファイルに出力する
  • imagegif() - 画像をブラウザあるいはファイルに出力する
  • imagewbmp() - 画像をブラウザあるいはファイルに出力する
  • imagetypes() - この PHP がサポートしている画像形式を返す

add a note add a note

User Contributed Notes 2 notes

up
1
Hagan Fox
9 years ago
This function safely determines the GD version, even on PHP versions earlier than 4.3 that lack the gd_info() function.  Use it to avoid having your script halt with a fatal error if you try to use a TrueColor function and the GD version isn't 2.0 or later.

You can optionally specify a version, but if you specify version 2 it might be overridden.  Once the version number is determined it's retained to speed future calls.

<?php
/**
* Get which version of GD is installed, if any.
*
* Returns the version (1 or 2) of the GD extension.
*/
function gdVersion($user_ver = 0)
{
    if (!
extension_loaded('gd')) { return; }
    static
$gd_ver = 0;
   
// Just accept the specified setting if it's 1.
   
if ($user_ver == 1) { $gd_ver = 1; return 1; }
   
// Use the static variable if function was called previously.
   
if ($user_ver !=2 && $gd_ver > 0 ) { return $gd_ver; }
   
// Use the gd_info() function if possible.
   
if (function_exists('gd_info')) {
       
$ver_info = gd_info();
       
preg_match('/\d/', $ver_info['GD Version'], $match);
       
$gd_ver = $match[0];
        return
$match[0];
    }
   
// If phpinfo() is disabled use a specified / fail-safe choice...
   
if (preg_match('/phpinfo/', ini_get('disable_functions'))) {
        if (
$user_ver == 2) {
           
$gd_ver = 2;
            return
2;
        } else {
           
$gd_ver = 1;
            return
1;
        }
    }
   
// ...otherwise use phpinfo().
   
ob_start();
   
phpinfo(8);
   
$info = ob_get_contents();
   
ob_end_clean();
   
$info = stristr($info, 'gd version');
   
preg_match('/\d/', $info, $match);
   
$gd_ver = $match[0];
    return
$match[0];
}
// End gdVersion()

// Usage:

if ($gdv = gdVersion()) {
    if (
$gdv >=2) {
        echo
'TrueColor functions may be used.';
    } else {
        echo
'GD version is 1.  Avoid the TrueColor functions.';
    }
} else {
    echo
"The GD extension isn't loaded.";
}
?>

The function only detects the GD version, but you could determine GD capabilities in a similar manner.
up
-2
yohami dot com - zerodj at hotmail dot com
10 years ago
A cool resize / cropping script for creating thumbnails using mogrify

IMAGETEST.PHP

<?php

include 'mogrify.php';

// variables from flash (my website uses flash and php)
$picture="sample.jpg";
$fixedwidth=300;
$fixedheight=240;
//

cropimage($picture,$fixedwidth,$fixedheight,$mogrify);

?>

MOGRIFY.PHP

<?php
// walking the path
$mogrify="C:/apache/Imagik/mogrify.exe";

// ---------------------------------------- crop function

function cropimage($picture,$fixedwidth,$fixedheight,$mogrify) {

   
// GET IMG
   
$img = imagecreatefromjpeg($picture);
   
$width= imagesx($img);
   
$height= imagesy($img);
   
// CROP WIDTH
   
if($width!=$fixedwidth){
       
$ratio =$fixedwidth/$width;
       
$NewHeight=round($height*$ratio);
       
$NewWidth=round($width*$ratio);
       
exec( $mogrify." -resize ".$NewWidth."x".$NewHeight."! $picture");
       
exec( $mogrify." -crop ".$fixedwidth."x".$fixedheight."+0+0 $picture");
       
// REFRESH
       
$img = imagecreatefromjpeg($picture);
       
$width= imagesx($img);
       
$height= imagesy($img);
    }
   
// CROP HEIGHT
   
if($height!=$fixedheight){
       
$ratio =$fixedheight/$height;
       
$NewHeight=round($height*$ratio);
       
$NewWidth=round($width*$ratio);
       
exec( $mogrify." -resize ".$NewWidth."x".$NewHeight."! $picture");
       
exec( $mogrify." -crop ".$fixedwidth."x".$fixedheight."+0+0 $picture");
    }
   
//
   
ImageDestroy($img);
}

?>

yeah!
To Top