SunshinePHP Developer Conference 2015

gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_infoReúne información acerca de la biblioteca GD instalada actualmente

Descripción

array gd_info ( void )

Obtiene información acerca de la versión y capacidades de la biblioteca GD instalada.

Valores devueltos

Devuelve una matriz asociativa.

Elementos de la matriz devuelta por gd_info()
Atributo Significado
GD Version valor de tipo string que describe la versión de libgd instalada.
FreeType Support valor de tipo boolean. TRUE si está instalado el soporte para Freetype.
Freetype Linkage valor de tipo string que describe la forma en la cual Freetype fue vinculado. Los valores esperados son: 'with freetype', 'with TTF library' y 'with unknown library'. Este elemento sólo estará definido si Freetype Support fue evaluado como TRUE.
T1Lib Support valor de tipo boolean. TRUE si el soporte para T1Lib está incluido.
GIF Read Support valor de tipo boolean. TRUE si el soporte para la lectura de imágenes GIF está incluido.
GIF Create Support valor de tipo boolean. TRUE si el soporte para la creación de imágenes GIF está incluido.
JPEG Support valor de tipo boolean. TRUE si el soporte para JPEG está incluido.
PNG Support valor de tipo boolean. TRUE si el soporte para PNG está incluido.
WBMP Support valor de tipo boolean. TRUE si el soporte para WBMP está incluido.
XBM Support valor de tipo boolean. TRUE si el soporte para XBM está incluido.
WebP Support Valor de tipo boolean. TRUE si el soporte para WebP está incluido.

Nota:

Antes de PHP 5.3.0, el atributo JPEG Support se llamaba JPG Support.

Ejemplos

Ejemplo #1 Usar gd_info()

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

El resultado del ejemplo sería algo similar a:

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

Historial de cambios

Versión Descripción
5.5.0 Se añadió WebP Support.
5.3.0 El atributo JPG Support se renombró a JPEG Support.

Ver también

  • imagepng() - Imprimir una imagen PNG al navegador o a un archivo
  • imagejpeg() - Exportar la imagen al navegador o a un fichero
  • imagegif() - Exportar la imagen al navegador o a un fichero
  • imagewbmp() - Exportar la imagen al navegador o a un fichero
  • imagetypes() - Devolver los tipos de imagen soportados por la versión actual de 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