Ver Mensaje Individual
  #13 (permalink)  
Antiguo 28/12/2006, 21:44
Vhyll
 
Fecha de Ingreso: octubre-2004
Ubicación: Lima, Perú
Mensajes: 185
Antigüedad: 20 años, 4 meses
Puntos: 1
Re: Generar thumbnail directamente??

No se si te sirva este codigo pero lo utilizo y me gusta aunque aun me falta cambiarle unos detalles en los rango de ancho y altura.
Código PHP:
<?php
function thumb($imagefile$w) {

    
/* Obtener extensión del archivo */
    
$dot = (strlen($imagefile) - strrpos($imagefile".")-1)*(-1);

    
$ext substr($imagefile$dot);
    
$ext strtolower($ext);    
        
    
/* Chequear que las imágenes sean de alguno de los formatos soportados. Por medio de la función strtolower(), pasamos la extensión a minúsculas */
    
    
if(strtolower($ext) == "gif") {
        if (!
$src_img imagecreatefromgif($imagefile)) {
            echo 
"Error abriendo $imagefile!"; exit;
        }
    } else if(
strtolower($ext) == "jpg" || strtolower($ext) == "jpeg") {
        if (!
$src_img imagecreatefromjpeg($imagefile)) {
            echo 
"Error abriendo $imagefile!"; exit;
        }
    } else if(
strtolower($ext) == "png") {
        if (!
$src_img imagecreatefrompng($imagefile)) {
            echo 
"Error abriendo $imagefile!"; exit;
        }
    } else if(
strtolower($ext) == "JPG" || strtolower($ext) == "JPEG") {
        if (!
$src_img imagecreatefromjpeg($imagefile)) {
            echo 
"Error abriendo $imagefile!"; exit;
        }
     }    else {
        echo 
"Formato de imágen no soportada"; exit;
    }
    
    
/*La función getimagesize devuelve un array con la siguiente estructura:
        array {
            [0] => "ancho en pixeles"
            [1] => "alto en pixeles"
            [2] => "tipo de imágen (1=GIF; 2=JPG; 3=PNG)"
            [3] => "width=xxx height=yyy" (para usar con el tag img de HTML)
        }
    */
    
    
$hw getimagesize($imagefile);
    
/* $w es el ancho para la nueva imágen */
    
$new_w $w;
    
/* A través del cociente entre el alto y el cociente entre la anchura original y la anchura nueva, mantenemos las proporciones de la imágen.*/
    
$new_h $hw["0"]/($hw["1"]/$w);

    
/* Intentamos crear una imágen 'true color'. Esta función es soportada a partir de GD 2.0, por lo que en caso de no funcionar, se usará la función imageCreate */
    
$dst_img = @imagecreatetruecolor($new_h$new_w);
    if(!
$dst_img) {
      
$dst_img imageCreate($new_h$new_w);
    }
    
    
/* Se crea la imágen con los valores obtenidos y borramos las imágenes de la memoria. */
    
imagecopyresampled($dst_img,$src_img,0,0,0,0,$new_h,$new_w,imagesx($src_img),imagesy($src_img));
    
imagejpeg($dst_img,"",100);
    
ImageDestroy($src_img);
    
ImageDestroy($dst_img);
}
/* Se indica el tipo de archivo */
header("Content-type: image/jpeg");

/* Llamamos a la función para crear el thumbnail con los valores obtenidos por HTTP GET */
thumb($_GET[image], $_GET[w]);

?>
Solo lo llamarias thumb.php?image=lacarpetadondeestan&w=120
120 es el tamaño maximo del thumb. ya es cuestion de que lo pruebes la calidad es buena.