Mira, puedes adaptar el script como lo necesites. Si tus imagenes están en una BD, pues puedes recibir por la url el id de la imagen, algo como
thumb.php?id=165, luego, en el script, chequear la base de datos, sacar la ruta y ya. O puede convertir el script en una funcion que reciba como parámetros la url del archivo y el tamaño:
Código PHP:
function thumb_sq ( $archivo , $size = 100 ) {
if(empty($archivo)) {
echo 'No se especifico la ruta';
exit;
}
//Si no se ha especificado el tamaño del cuadrado
$pix = (!is_numeric($size) or $size < 1) ? 100 : $size;
//Averiguamos la extension del archivo, porque de eso van a depender las funciones a usar
$extension = pathinfo($archivo);
$extension = $extension['extension'];
//Escoger la funcion. Usamos la funcion switch
switch($extension) {
case 'jpg':
$f1 = "imagecreatefromjpeg";
$f2 = "imageJpeg";
$type = "jpeg";
break;
case 'gif':
$f1 = "imagecreatefromgif";
$f2 = "imageGif";
$type = "gif";
break;
case 'png':
$f1 = "imagecreatefrompng";
$f2 = "imagePng";
$type = "png";
break;
default:
echo 'Error, tipo desconocido de archivo: '.$extension;
exit;
break;
}
$img_fuente = @$f1($archivo);
//Dimensiones
$img_ancho = imagesx($img_fuente);
$img_alto = imagesy($img_fuente);
$pix = intval($_GET['pix']);
$diferencia_ancho = $img_ancho/$pix;
$diferencia_alto = $img_alto/$pix;
if($diferencia_ancho < $diferencia_alto) {
$nuevo_ancho = $pix;
$prop = $nuevo_ancho/$img_ancho;
$nuevo_alto = round($img_alto*$prop);
$dist_x = 0;
$dist_y = ($pix-$nuevo_alto)/2;
} else {
$nuevo_alto = $pix;
$prop = $nuevo_alto/$img_alto;
$nuevo_ancho = round($img_ancho*$prop);
$dist_x = ($pix-$nuevo_ancho)/2;
$dist_y = 0;
}
$imagen = imagecreatetruecolor($pix, $pix);
imagecopyresampled($imagen, $img_fuente, $dist_x, $dist_y, 0, 0, $nuevo_ancho, $nuevo_alto, $img_ancho, $img_alto);
Header("Content-type: image/$type");
$f2($imagen);
}
Bien, asi debe funcionar. Al hacer la consulta a la bd, para mostrar simplemente haces:
thumb.php Código PHP:
// ........
$sql = mysql_query($sql);
$img = mysql_fetch_assoc($sql);
thumb_sq($img['url']);
Un saludo,