| :: Cómo crear thumbnails con php |
Para hacer funcionar este script necesitaremos la librería GD y php instalado en el servidor, con este script funcionando podremos crear thumbnails. Este script constará de dos funciones, la primeraescaneará un directorio en busca de cualquier imagen en formato ".jpg", para cada una de las búsquedas se crea un thumbnailen un directorio con la ayuda de la librería GD, la segunda función crea un archivo HTML en el mismo directorio en el que se encuentra el script, esta página contendrá todas las imágenes (versión thumbnail) y el correspondiente enlace a la imagen original. La utilidad de este script es muy sencilla con una cuantas mejoras puede convertirse en una buena galería para nuestras imágenes preferidas.
El código que viene a continuación es una función llamada crearthumb a la que tendremos que dar tres parametros, los dos primeros parámetros corresponden a las rutas de los direcorios que contendrán las imágenes originales y los thumbnails de estas. El tercer parametro es el ancho que queremos para nuestros thumbnails, si te preguntas por qué no hace falta el ancho la respuesta es sencilla porque de esa manera estariamos redimensionando las imágenes y no conservarían su aspecto original.
| Código: |
<?php
function crearthumb ( $pathToImages, $pathToThumbs, $thumbWidth )
{
// abrimos el directorio
$dir = opendir( $pathToImages );
// bucle en busca de archivos jpg
while (false !== ($fname = readdir( $dir ))) {
$info = pathinfo($pathToImages . $fname);
// continua unicamente si la imagen es jpg
if ( strtolower($info['extension']) == 'jpg' )
{
echo "Creando thumbnail para {$fname}
";
// carag y devuelve las medidas de la imagen
$img = imagecreatefromjpeg( "{$pathToImages}{$fname}" );
$width = imagesx( $img );
$height = imagesy( $img );
// calcula el tamaño
$new_width = $thumbWidth;
$new_height = floor( $height * ( $thumbWidth / $width ) );
// crea una nueva imagen de manera temporal
$tmp_img = imagecreatetruecolor( $new_width, $new_height );
// copia y dedimensiona la nueva imagen en la temporal que hemos creado
imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
// guarda el thumbnail en un archivo
imagejpeg( $tmp_img, "{$pathToThumbs}{$fname}" );
}
}
// cierra el directorio
closedir( $dir );
}
// llama a la funcion y pasa los parametros necesarios arriba explicados
// esta ruta devera ser la ruta relatica y no la absoluta
crearthumb ("upload/","upload/thumbs/",100);
?> |
En esta segunda parte pasaremos a crear la galería con una función llamada creargaleria que necesitará dos parámetros (la ruta relativa de las imágenes y sus thumbanils), la ejecución de esta función creará una página HTML que contendrá todos los thumbnails con los enlaces a sus imágenes originales.
| Código: |
<?php
function creargaleria ( $pathToImages, $pathToThumbs )
{
echo "Creando galeria...
";
$output = "<html>";
$output .= "<head><title>Previsualización</title></head>";
$output .= "<body>";
$output .= "<table cellspacing="0" cellpadding="2" width="500">";
$output .= "<tr>";
// abrir el directorio
$dir = opendir( $pathToThumbs );
$counter = 0;
// bucle dentro del directorio
while (false !== ($fname = readdir($dir)))
{
if ($fname != '.' && $fname != '..')
{
$output .= "<td valign="middle" align="center"><a href="{$pathToImages}{$fname}">";
$output .= "<img src="{$pathToThumbs}{$fname}" border="0" />";
$output .= "</a></td>";
$counter += 1;
if ( $counter % 4 == 0 ) { $output .= "</tr><tr>"; }
}
}
// cerrar el directorio
closedir( $dir );
$output .= "</tr>";
$output .= "</table>";
$output .= "</body>";
$output .= "</html>";
// abrir archivo
$fhandle = fopen( "gallery.html", "w" );
// escribimos el contenido en la variable $outputal archivo fwrite( $fhandle, $output );
// cerrar archivo
fclose( $fhandle );
}
// llamamos a la funcion creargaleria y le pasamos los parametros necesarios
creargaleria ("upload/","upload/thumbs/");
?> |
Cómo se puede ver es bastante sencillo el código necesario para crear los thumbnails, la gran mayoria de errores con este tipo de scripts vienen por una mala configuración de nuestro servidor y más en concreto con la librería GD, es altamente recomendable revisar los permisos de los directorios en caso de error.
Fuente: www.tufuncion.com
Licencia: Licencia de Creative Commons 2.5
|
|
|
|
| |
Agregar a favoritos
Versión Imprimible Enviar a un Amigo
Compartir:

Zips Populares - Cómo convertir a Jessica Rabbit en Humana - Facilítales a tus clientes la compra del producto - Monos suman casi tan bien como los humanos - Newton pronosticó fin del mundo para el 2060 - Obtener la versión de Flash Player del usuario - Pasos para proteger tu sistema - Tips para mantenerte ejercitada desde tu hogar
|