Generar Thumbnails
Script para crear imágenes en miniatura con la librería GD.
En este tutorial trataremos de explicar cómo crear previsualizaciones de imágenes (thumbnails) de un directorio y luego guardarlas en otro con PHP.
Es necesario tener instalada la Librería GD en PHP para poder tratar y redimensionar las imágenes. Al final del artículo hemos escrito el código completo. Pero antes veamos por partes que hace el programa. Primero definiremos algunas variables. El ancho que tendrá la imagen de previsualización, el directorio que contiene las imágenes,
las extensiones de imágenes que convertiremos y el directorio donde queremos guardar las previsualizaciones. A continuación haremos algunas comprobaciones básicas para verificar que el directorio existe y que se puede abrir. Si todo es correcto entraremos dentro del bucle para leer los archivos que contiene. Para cada archivo miraremos su extensión.
Finalmente haremos una copia de la imagen original usando la función imagecopyresized*** con las nuevas dimensiones, y luego guardaremos el archivo de imagen
en la carpeta adecuada.
Generar Imágenes en Miniatura
Código por Partes
$ancho_preview = 50;
$directorio = "./imagenes/";
$extensiones = array("gif","jpg","png");
$directorioGuardar = "./previews/";
...
if(is_dir($directorio) && $dir = opendir($directorio)){
...
while (($nombre_archivo = readdir($dir)) !== false){
$archivo = pathinfo($directorio.$nombre_archivo);
if (in_array(strtolower($archivo['extension']),$extensiones))
{
if(strtolower($archivo['extension'])=="gif"){
$img = imagecreatefromgif($directorio.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="jpg"){
$img = imagecreatefromjpeg($directorio.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="png"){
$img = imagecreatefrompng($directorio.$nombre_archivo);
}
...
Script Completo
$ancho_preview = 50;
$directorio = "./imagenes/";
$extensiones = array("gif","jpg","png");
$directorioGuardar = "./previews/";
if(is_dir($directorio) && $dir = opendir($directorio)){
while (($nombre_archivo = readdir($dir)) !== false){
$archivo = pathinfo($directorio.$nombre_archivo);
if (in_array(strtolower($archivo['extension']),$extensiones))
{
if(strtolower($archivo['extension'])=="gif"){
$img = imagecreatefromgif($directorio.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="jpg"){
$img = imagecreatefromjpeg($directorio.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="png"){
$img = imagecreatefrompng($directorio.$nombre_archivo);
}
$ancho = imagesx($img);
$altura = imagesy($img);
$ancho_nuevo = $ancho_preview;
$nueva_altura = floor($altura*($ancho_preview/$ancho));
$tmp_img = imagecreatetruecolor($ancho_nuevo,$nueva_altura);
imagecopyresized($tmp_img,$img,0,0,0,0,$ancho_nuevo,$nueva_altura,$ancho,$altura);
if(strtolower($archivo['extension'])=="gif"){
imagegif( $tmp_img,$directorioGuardar.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="jpg"){
imagejpeg( $tmp_img,$directorioGuardar.$nombre_archivo);
}else if(strtolower($archivo['extension'])=="png"){
imagepng( $tmp_img,$directorioGuardar.$nombre_archivo);
}
}
}
}
closedir($dir);
Detalles sobre este artículo
Enviado por WebTutoriales:
Fecha Publicación: 26.09.2007
Este artículos ha sido visto 1.744 veces.
Vota este artículo:
Otros Artículos Relacionados
Enlaza Este Artículo Desde tu Web
El enlace se verá así: Generar Thumbnails
COMENTARIOS |
|
Posteado por alex, el 30.12.2007, 12:48
Gran tutorial, muyy util, excepto que podrian ampliarlo explicando como integrarlo en un upload de fotos, de manera que se cuelgue la foto que el usuario quiera, y luego sea redimensionada. |
![]() |

COMENTARIOS