Aquí tienen una galería bastante buena, simple de usar.
http://www.prothotype.com/blog/2005/12/18/galeria-php-con-thumbs/
Lo único que no tiene configurado para paginar a una cierta cantidad de imágenes.
Aprovecho para ver si alguien puede darme una mano en implementarle a ese código la paginación.
El codigo de la galería es el siguiente. Solo trabaja con este archivo (galeria.php) y una carpeta de imagenes para cada galeria.
Código :
<?php
function tiny($d, $archivo){
$original = imagecreatefromjpeg("$d/$archivo");
/* Hallamos la anchura y altura de la imagen original */
$ancho = imagesx($original);
$alto = imagesy($original);
/* Indicamos la anchura que tendrá la miniatura */
$anchomini=100;
/* Obtenemos por una simple regla de tres la altura de la miniatura */
$altomini=($alto*$anchomini)/$ancho;
/*verificamos que los valores de ancho y alto no excedan nuestro limite por imagen*/
if($altomini>100){
$altomini = 100;
$anchomini = ($ancho*100)/$alto;
}
/* Dimensionamos la miniatura */
$thumb = imagecreatetruecolor($anchomini,$altomini);
/* Se obtiene por interpolación la miniatura en memoria */
imagecopyresampled($thumb,$original,0,0,0,0,$anchomini,$altomini,$ancho,$alto);
if(!is_dir("$d/thumbs")) {
mkdir("$d/thumbs",0777);
}
/* Guardamos la miniatura en un fichero con formato JPEG y un ratio de compresión de 90% */
imagejpeg($thumb,"$d/thumbs/tn_$archivo",90);
}
function gallery($fotos) {
$i = 0;
if (is_dir($fotos)) {
if ($handle = opendir($fotos)) {
echo $fotos;
while (($archivo = readdir($handle)) !== false) {
//falta validar extensiones
if(!(is_dir($archivo)OR($archivo=="thumbs"))) {
if(!file_exists("$fotos/thumbs/tn_$archivo")){
tiny($fotos,$archivo);
}
//muestra thumbs
$j=($i%4);
if($j==0){
echo "\n";
echo '<p></p>';
}
echo '<a href="'.$fotos.'/'.$archivo.'"><img src="'.$fotos.'/thumbs/tn_'.$archivo.'"/></a>';
$i++;
}
}
closedir($fotos);
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Galeria </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
@gallery($_GET[fotos]);
?>
</body>
</html>
Saludos
Gonzalo
