PHP:¿Cómo genero thumbnails de las imágenes de mis galerías?

De Foros del Web

Requisitos: tener cargada la librería gd2(descomentada en php.ini)

Con este script:

thumnails.php

Código PHP:

<?php 
    $ext_file=split("[.]",$file); 
    $ext = strtolower($ext_file[2]); 
    $tam=getimagesize($file); 
    if(($tam[1]/$tam[0])>10){ 
        $n_alto=80; 
        $n_ancho=($n_alto*($tam[0]/$tam[1])); 
    }else{ 
        $n_ancho=80; 
        $n_alto=($n_ancho*($tam[1]/$tam[0])); 
    } 
    if($ext=="jpg" || $ext=="jpeg"){      
        $origen  = imagecreatefromjpeg($file);  
         $imagen  = imagecreatetruecolor($n_ancho,$n_alto);  
         imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);  
        header("Content-type: image/jpeg");   
         imagejpeg($imagen);  
    }else if($ext=="png"){  
         $origen  = imagecreatefrompng($file);  
         $imagen  = imagecreatetruecolor($n_ancho,$n_alto);  
      imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]); 
        header("Content-type: image/png");  
        imagepng($imagen);  
    }else if($ext=="gif"){  
      $origen  = imagecreatefromgif($file);  
      $imagen  = imagecreatetruecolor($n_ancho,$n_alto);  
      imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);  
      header("Content-type: image/gif");  
        imagegif($imagen);   
    }else{  
            return false;  
    } 
?> 

cómo usarla, bueno se hace de la siguiente forma:

Código HTML:

<img src="thumnails.php?file=./galerias/queseyo/usuarios/yo.jpg">

nota:

si no se cuenta con la librería gd2 y sólo tienes la gd entonces tienes que reemplazar las funciones imagecreatetruecolor por imagecreate, imagecopyresampled por imagecopyresized


--The_Dark_Roy 11 Jul 2005

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

Herramientas personales