Buscando algunas cosillas por la red me encontré con este codigo en un foro y lo probé. La verdad es que funciona de maravilla, lo que hace es crear thumbails o miniaturas de imágenes al vuelo sin necesidad de tener la imágen en miniatura alojada en nuestro servidor. De hecho, las puede crear incluso de servidores o páginas web externas.
Necesitamos crear 2 archivos, uno para «visualizar» las img y el otro el php que las genera automaticamente.
Modifiqué una linea para que sacara una mejor resolución.
El thumbnail.class.php sería así:
<?php class thumbnail { var $image; var $size_x; var $size_y; function thumbnail($url) {$this->image=$url;} function size($size_x,$size_y) {$this->size_x=$size_x;$this->size_y=$size_y;} function show() { header("Content-type: image/jpeg"); $imageinfo=getimagesize ($this->image); $x=$imageinfo[0]; $y=$imageinfo[1]; if($imageinfo[2]==1) $original_image=imagecreatefromgif($this->image); if($imageinfo[2]==2) $original_image=imagecreatefromjpeg($this->image); if($imageinfo[2]==3) $original_image=imagecreatefrompng($this->image); if($imageinfo[2]>3) die('Image format not supported'); $resize_x=$this->size_x/$x; $resize_y=$this->size_y/$y; if($resize_x<$resize_y) $resize=$resize_x; else $resize=$resize_y; $im = imagecreatetruecolor(ceil($x*$resize),ceil($y*$resize)); imagecopyresampled($im,$original_image,0,0,0,0,ceil($x*$resize),ceil($y*$resize),$x,$y); imagejpeg($im, NULL, 100); imagedestroy($im); } } ?>
El thumbnail.php.
<?php include('thumbnail.class.php'); $image=new thumbnail($_GET['file']); $image->size($_GET['x'],$_GET['y']); $image->show(); ?>
Cuando quedamos generar una imagen en las dimensiones especificas se crea añadiendo los valores en la url de este modo:
x=100&y=130 :::::::: tamaño de la miniatura
file= ::::::: La url de la imágen real.
tuweb.com ::::: La url de tu web.
Evidentemente este ejemplo es si está en la raiz de vuestro sitio web, sino tendreis que poner la ruta en la url, si el archivo thumbnail.php esta en la carpeta img tendria que ser:
http://www.tuweb.com/img/thumbnail.php?x=100&y=130&file=RUTA URL IMAGEN
y en el include de thumbnail.php debe coincidir tambien la ruta del archivo thumbnail.class.php.
Aquí lo dejo por si me hace falta en el futuro. Un saludo.