Hola a todos! Tengo el siguiente código para una galería de fotos pero el problema es que no me aparece el thumbail de la misma. Uso las librerías gráficas GD 1.x.
En las 2 páginas...
Código PHP:
include ("conectar.php");
Código PHP:
// conexion a la base
$conexion = mysql_connect($host_db, $usuario_db, $pass_db) or die ("no se ha podido conectar a la BD");
mysql_select_db($base_db, $conexion) or die ("no se ha podido seleccionar la BD");
// Ejecuto la consulta
$sql = "SELECT id, year, coreo, profesor, foto FROM imagenes";
$consulta = mysql_query($sql, $conexion);
// Muestro los registros
if ($consulta)
{
while($fila=mysql_fetch_assoc($consulta))
echo $fila['year']."<br>";
echo $fila['coreo']."<br>";
echo $fila['profesor']."<br>";
{
...y a la imagen la llamo con el tag
<img src="2004/resizes.php?id=<?php echo $fila['id']; ?>" border="0">
El archivo resizes.php contiene el código que utilizó CLUSTER en su tutorial de "guardar archivos binarios..."
Código PHP:
// OJO, sólo funciona con imagnes en formato JPEG ...
if(isset($_GET['id'])) {
$conexion = mysql_connect($host_db, $usuario_db, $pass_db) or die ("no se ha podido conectar a la BD");
mysql_select_db($base_db, $conexion) or die ("no se ha podido seleccionar la BD");
$sql = "SELECT foto FROM imagenes WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);
$imagen = mysql_result($consulta,0,"foto");
// Envio cabeceras al navegador .. se indica que lo "que vá" es una imagen de formato MIME JPEG
Header ("Content-type: image/jpeg");
// Generar el thumbnail:
// Se crea la imagen desde el campo binario de la BD
$img = imagecreatefromstring($imagen);
// Tamaño del Thumbanil (de la imagen a generar ..)
$picsize = 123;
// Se obtienen los datos del ancho y alto de la imagen.
$new_w = imagesx($img);
$new_h = imagesy($img);
// Se calcula la relación alto/ancho
$aspect_ratio = $new_h / $new_w;
// Se ajusta al nuevo tamaño
$new_w = $picsize;
$new_h = abs($new_w * $aspect_ratio);
// Se crea la mascara de la imagen nueva
$dst_img = imagecreate($new_w,$new_h);
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
imagecopyresized($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
// El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
imagejpeg($dst_img,'',100);
}
Le puse "2004/..." porque las fotos se encuentran en un subdirectorio. Copié el archivo resizes.php al dir 2004/ y nada, me aparece el cuadrito de la foto con una cruz.
¿Alguna sugerencia? ¿Donde metí la pata?
Muchas gracias a todos.
MArx.