Lenguajes
Web/Otros
Extra
Enlaces

Generar Thumbnail (imagen en miniatura) en PHP

Si en tu web tienes una galería de imágenes, seguro que necesitas un generador de thumbnails, o imágenes en miniatura, para que tus usuarios no tengan que descargarse la imagen en su tamaño original si no les interesa. Generando una vista previa de la imagen original se podrá navegar rápida y cómodamente por la galería de imágenes y además, el ahorro en transferencia será significativo.

Para poder generar thumbnails con PHP necesitamos tener instalada la biblioteca GD. Podemos ver si la tenemos haciendo un phpinfo:

<?php phpinfo(); ?>

Para crear la vista previa lo que haremos será abrir la imagen original y crear una nueva. Lo haremos así:

$original = imagecreatefromjpeg("original.jpg");
$thumb = imagecreatetruecolor(150,150); // Lo haremos de un tamaño 150x150

Ahora necesitamos saber de que tamaño es la imagen original:

$ancho = imagesx($original);
$alto = imagesy($original);

A continuación vamos a copiar la imagen original en la imagen en miniatura:

imagecopyresampled($thumb,$original,0,0,0,0,150,150,$ancho,$alto);

Por último, guardamos la imagen en disco:

imagejpeg($thumb,'thumb.jpg',90); // 90 es la calidad de compresión

Este algoritmo para generar imágenes en miniatura no respeta el aspecto de la imagen original, para ello tendríamos que calcular el tamaño de la imagen en miniatura a partir de la imagen original.

El código al completo, todo junto, es este:

<?php

// Simple Thumb Gen
// Por Alex (Nenillo)

$original = imagecreatefromjpeg("original.jpg");
$thumb = imagecreatetruecolor(150,150); // Lo haremos de un tamaño 150x150

$ancho = imagesx($original);
$alto = imagesy($original);

imagecopyresampled($thumb,$original,0,0,0,0,150,150,$ancho,$alto);

imagejpeg($thumb,'thumb.jpg',90); // 90 es la calidad de compresión

?>


Redactado por Nenillo

Inicio | JavaScript necesario para este enlace

Noticias en RSS2 XHTML Vlido CSS Vlido