mostrar imagen y despues borrarla

Iniciado por psebas, 16 Abril 2010, 21:28 PM

0 Miembros y 1 Visitante están viendo este tema.

psebas

Hola buenas tardes a todos.
Alguno sabe como podria mostrar una imagen que descomprimo en gzip.
Con este codigo parece que borra la imagen jpg descomprimida antes de que interprete el html
Código (php) [Seleccionar]
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Descomprimiendo fichero gz</title>
</head>
<body>
<?
# Creamos una variable "vacia"
$cadena="";
# Abrimos el fichero en modo lectura (r)
$f1=fopen("..\cursophp\images\aviones4.jpg","r");
/* hacemos un bucle para leer el fichero
 hasta encontrar el final (feof) y vamos recogiendo
 el contenido en la variable */
while (!feof($f1)) {
   $cadena .= fgets($f1, 1024);
 }
/*comprimimos la cadena con gzencode
 con lo cual la propia función añade los "encabezados"
 de formato gzip*/
$c1=gzencode($cadena,3,FORCE_GZIP);
/* abrimos un nuevo fichero modo escritura (w)
con "fopen", es decir como un fichero normal con extensión GZ */
$f=fopen("aviones4.jpg.gz","w");
/* escribimos la cadena "tal cual"
 en este fichero */
 fwrite($f,$c1);
# cerramos el fichero comprimido
 fclose($f);
 #echo "La compresión ha terminado";
?>
<?
$nombrefichero="aviones4.jpg";
# activamos el buffer en vez de la salida estandard
ob_start();
# Abrimos el fichero con "gzopen" ya que se trata de un fichero comprimido
$f1=gzopen($nombrefichero.".gz","r");
# sacamos el contenido (descomprimimos) al buffer
gzpassthru($f1);
# ponemos el contenido en la variable $cadena
$cadena = ob_get_contents();
# limpiamos el buffer
ob_end_clean();
# abrimos en modo escritura el fichero para escribir el contenido descomprimido anteriormente
$f1=fopen($nombrefichero,"w");
# escrimos en el fichero el contenido descomprimido anteriormente
fwrite($f1,$cadena);
# cerramos el fichero
fclose($f1);
# mostramos el fichero descomprimido como imagen (pero el html no llega a encontrar el fichero, pues parece que el php le borra antes)
echo '<img src="'.$nombrefichero.'"><br>';
?>

</body>
</html>
<?
# borro el fichero,
unlink($nombrefichero);
?>


Gracias y Salu2.

AFelipeTrujillo

una vez descomprimida la imagen guardela en un directorio... una vez hecho el proceso la cargamos con el método imagecreatefromjpeg  pasandole como parámetro la URL o la dirección del archivo....

con esta función puedes parle la URL o el direcctorio y configurale algunos atributos mas:

Código (php) [Seleccionar]
function CargarJpeg ($nombreimg) {
    $im = @imagecreatefromjpeg ($nombreimg); /* Intento de apertura */
    if (!$im) { /* Comprobar si ha fallado */
        $im  = imagecreate (150, 30); /* Crear una imagen en blanco */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc  = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
        /* Mostrar un mensaje de error */
        imagestring ($im, 1, 5, 5, "Error cargando $nombreimg", $tc);
    }
    return $im;
}
header('Content-Type: image/jpeg');

$img = CargarJpeg ('bogus.image');

imagejpeg($img);
imagedestroy($img)


espero que le sirva !!!!!