Ver Mensaje Individual
  #22 (permalink)  
Antiguo 15/09/2008, 16:52
Avatar de valenti77
valenti77
 
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 16 años, 8 meses
Puntos: 4
Respuesta: mostrar imagen !

Este es el php que pone los thumbnails, que seeria el menu de la galeria de imagenes que dibuje hoy...

Código PHP:
<?

mysql_connect
("","","")or die("no se ha podido conectar ala BD");

mysql_select_db("")or die("no se ha podido seleccionar la BD");

$sql="SELECT id,archivo_nombre,archivo_tipo,archivo_peso FROM archivos";

$consulta=mysql_query($sql)or die("No se pudo ejecutar la consulta");?>

<table border="0"><tr><div class="Imagenes">

<? while ($registro=mysql_fetch_assoc($consulta)){

echo
"<td><img onclick=\"imagen.src=\'ver.php?id=".$registro['id']."';\"src=\"ver_thumbnail.php?id=".$registro['id']."\">";

echo 
"<br>Nombre archivo:".$registro['archivo_nombre'];}

mysql_close()?>
Este , es el que genera los thumbnails:

Código PHP:
<?php

// OJO, sólo funciona con imagnes en formato JPEG ...

if(isset($_GET['id'])) {

    
mysql_connect("","","") or die ("no se ha podido conectar a la BD");
    
mysql_select_db("a3344304_posts") or die ("no se ha podido seleccionar la BD");
    
$sql "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM archivos WHERE id='".$_GET['id']."'";
    
$consulta mysql_query($sql,$conexion);
    
$imagen mysql_result($consulta,0,"archivo_binario");

    
// 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 ImageCreateTrueColor($new_w,$new_h);

// Se copia y reajusta el nuevo tamaño en la nueva imagen.
     
imagecopyresampled($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);
}

?>
Este es el que hace que se vean las imagenes, el ver.php:

Código PHP:
<? // OJO, sólo funciona con imagnes en formato JPEG ...
if(isset($_GET['id'])) {
    
    
$conexion=mysql_connect("","","") or die ("no se ha podido conectar a la BD");
    
mysql_select_db("a3344304_posts") or die ("no se ha podido seleccionar la BD");
    
$sql "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM archivos WHERE id='".$_GET['id']."'";
    
$consulta mysql_query($sql,$conexion);
    
$imagen mysql_result($consulta,0,"archivo_binario");

    
// 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 500;
    
    
// 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 ImageCreateTrueColor($new_w,$new_h);

// Se copia y reajusta el nuevo tamaño en la nueva imagen.
     
imagecopyresampled($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);
}

?>
que en si es lo mismo que el anterior cambiando el tamaño final...

y esta la funcion ajax:

Código:
// Documento JavaScript
// Esta función cargará las paginas
function llamarasincrono (url, id_contenedor)
{
    var pagina_requerida = false;
    if (window.XMLHttpRequest)
    {
        // Si es Mozilla, Safari etc
        pagina_requerida = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        // pero si es IE
        try
        {
            pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versión antigua
            try
            {
                pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    }
    else
    return false;
    pagina_requerida.onreadystatechange = function ()
    {
        // función de respuesta
        cargarpagina (pagina_requerida, id_contenedor);
    }
    pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
    pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
    if (pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1))
    document.getElementById (id_contenedor).innerHTML = '<img src="'+pagina_requerida.responseText+'" />'}
y lo que resultaba de todo esto, antes de hacer las modificaciones que sacamos aca, me daba toda una serie de caracteres ASCII, es decir todos los simbolos raros...