PHP: ¿Cómo hacer Thumbnails con PHP?

De Foros del Web

Con la siguiente función podremos generar un thumbnail (imagen pequeña) de una original.

Código PHP:

<?php
//Autor: Víctor Simental
//http://port21.com.mx
 
$file = "imagen.jpg";//Nombre de la imagen Original
 
 
function image_gd($file)
{
//Separamos las extenciones de archivos para definir el tipo de ext.
    $extension = explode(".",$file);
    $ext = count($extension)-1;
    //Determinamos las extenciones permitidas.
        if($extension[$ext] == "jpg" || $extension[$ext] == "jpeg")
        {
            $image = ImageCreateFromJPEG($file);
        }
        else if($extension[$ext] == "gif"){
            $image = ImageCreateFromGIF($file);
        }
        else if($extension[$ext] == "png"){
            $image = ImageCreateFromPNG($file);
        }
        else
        {
            echo "Error, extencion no permitida";
            die();
        }
 
    $thumb_name = substr($file,0,-5);//nombre del thumbnail
    $width  = imagesx($image);//ancho
    $height = imagesy($image);//alto
 
    $nueva_anchura  = 100; // Definimos el tamaño a 100 px
    $nueva_altura = ($nueva_anchura * $height) / $width ; // tamaño proporcional
 
        if (function_exists("imagecreatetruecolor"))
        {
           $thumb = ImageCreateTrueColor($nueva_anchura, $nueva_altura);//Color Real
        }
        //En caso de no encontrar la funcion, la saca en calidad media
        if (!$thumb) $thumb = ImageCreate($nueva_anchura, $nueva_altura);
 
    ImageCopyResized($thumb, $image, 0, 0, 0, 0, $nueva_anchura, $nueva_altura, $width, $height);
    header("Content-type: image/jpeg");
    ImageJPEG($thumb, "t_".$thumb_name.".jpg", 100);
    imagedestroy($image);
 
return $image;
}
/* Forma de uso */
image_gd($file);    
?> 


La forma de uso es image_gd($file); donde $file es la variable que tiene asignada el nombre de nuestra imagen original.


--Vic_mx 31 Oct 2004

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales