(PHP 4 >= 4.3.0, PHP 5)
gd_info — Retrieve information about the currently installed GD library
Gets information about the version and capabilities of the installed GD library.
Returns an associative array.
| Attribute | Meaning | 
|---|---|
| GD Version | string value describing the installed libgd version. | 
| Freetype Support | boolean value. TRUE if Freetype Support is installed. | 
| Freetype Linkage | string value describing the way in which Freetype was linked. Expected values are: 'with freetype', 'with TTF library', and 'with unknown library'. This element will only be defined if Freetype Support evaluated to TRUE. | 
| T1Lib Support | boolean value. TRUE if T1Lib support is included. | 
| GIF Read Support | boolean value. TRUE if support for reading GIF images is included. | 
| GIF Create Support | boolean value. TRUE if support for creating GIF images is included. | 
| JPEG Support | boolean value. TRUE if JPEG support is included. | 
| PNG Support | boolean value. TRUE if PNG support is included. | 
| WBMP Support | boolean value. TRUE if WBMP support is included. | 
| XBM Support | boolean value. TRUE if XBM support is included. | 
Hinweis:
Previous to PHP 5.3.0, the JPEG Support attribute was named JPG Support.
Beispiel #1 Using gd_info()
<?php
var_dump(gd_info());
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
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)
}
| Version | Beschreibung | 
|---|---|
| 5.3.0 | JPG Support attribute renamed to JPEG Support. | 
@ thorerik dot lie at gmail dot com
<?
$array=gd_info ();
foreach ($array as $key=>$val) {
  
  if ($val===true) {
    $val="Enabled";
  }
  if ($val===false) {
    $val="Disabled";
  }
  echo "$key: $val <br />\n";
}
?>
does the same thing (SCNR)
An easy way to get the numeric value for the GD Version :
$Version = ereg_replace('[[:alpha:][:space:]()]+', '', $GDArray['GD Version']);
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.
I updated the function below to include the GD Version info and any other string fields. The function only showed the bool values before.
// Retrieve information about the currently installed GD library
function describeGDdyn() {
  echo "\n<ul><li>GD support: ";
  if(function_exists("gd_info")){
   echo "<font color=\"#00ff00\">yes</font>";
   $info = gd_info();
   $keys = array_keys($info);
   for($i=0; $i<count($keys); $i++) {
        if(is_bool($info[$keys[$i]])) echo "</li>\n<li>" . $keys[$i] .": " . yesNo($info[$keys[$i]]);
        else echo "</li>\n<li>" . $keys[$i] .": " . $info[$keys[$i]];
   }
  } else { echo "<font color=\"#ff0000\">no</font>"; }
  echo "</li></ul>";
}
function yesNo($bool){
  if($bool) return "<font color=\"#00ff00\"> yes</font>";
  else return "<font color=\"#ff0000\"> no</font>";
}
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!
this is a replacement for this function.
you can also use this function in php >= 4.3.
the handling is the same as the gd_info function (array gd_info(void))
<?php
$code = 'function gd_info() {
        $array = Array(
                       "GD Version" => "",
                       "FreeType Support" => 0,
                       "FreeType Support" => 0,
                       "FreeType Linkage" => "",
                       "T1Lib Support" => 0,
                       "GIF Read Support" => 0,
                       "GIF Create Support" => 0,
                       "JPG Support" => 0,
                       "PNG Support" => 0,
                       "WBMP Support" => 0,
                       "XBM Support" => 0
                      );
        $gif_support = 0;
        ob_start();
        eval("phpinfo();");
        $info = ob_get_contents();
        ob_end_clean();
      
        foreach(explode("\n", $info) as $line) {
            if(strpos($line, "GD Version")!==false)
                $array["GD Version"] = trim(str_replace("GD Version", "", strip_tags($line)));
            if(strpos($line, "FreeType Support")!==false)
                $array["FreeType Support"] = trim(str_replace("FreeType Support", "", strip_tags($line)));
            if(strpos($line, "FreeType Linkage")!==false)
                $array["FreeType Linkage"] = trim(str_replace("FreeType Linkage", "", strip_tags($line)));
            if(strpos($line, "T1Lib Support")!==false)
                $array["T1Lib Support"] = trim(str_replace("T1Lib Support", "", strip_tags($line)));
            if(strpos($line, "GIF Read Support")!==false)
                $array["GIF Read Support"] = trim(str_replace("GIF Read Support", "", strip_tags($line)));
            if(strpos($line, "GIF Create Support")!==false)
                $array["GIF Create Support"] = trim(str_replace("GIF Create Support", "", strip_tags($line)));
            if(strpos($line, "GIF Support")!==false)
                $gif_support = trim(str_replace("GIF Support", "", strip_tags($line)));
            if(strpos($line, "JPG Support")!==false)
                $array["JPG Support"] = trim(str_replace("JPG Support", "", strip_tags($line)));
            if(strpos($line, "PNG Support")!==false)
                $array["PNG Support"] = trim(str_replace("PNG Support", "", strip_tags($line)));
            if(strpos($line, "WBMP Support")!==false)
                $array["WBMP Support"] = trim(str_replace("WBMP Support", "", strip_tags($line)));
            if(strpos($line, "XBM Support")!==false)
                $array["XBM Support"] = trim(str_replace("XBM Support", "", strip_tags($line)));
        }
        
        if($gif_support==="enabled") {
            $array["GIF Read Support"]   = 1;
            $array["GIF Create Support"] = 1;
        }
        if($array["FreeType Support"]==="enabled"){
            $array["FreeType Support"] = 1;    }
 
        if($array["T1Lib Support"]==="enabled")
            $array["T1Lib Support"] = 1;     
       
        if($array["GIF Read Support"]==="enabled"){
            $array["GIF Read Support"] = 1;    }
 
        if($array["GIF Create Support"]==="enabled")
            $array["GIF Create Support"] = 1;     
        if($array["JPG Support"]==="enabled")
            $array["JPG Support"] = 1;
            
        if($array["PNG Support"]==="enabled")
            $array["PNG Support"] = 1;
            
        if($array["WBMP Support"]==="enabled")
            $array["WBMP Support"] = 1;
            
        if($array["XBM Support"]==="enabled")
            $array["XBM Support"] = 1;
        
        return $array;
    }';
if(!function_exists("gd_info")) eval($code);
?>