Foros del Web » Programando para Internet » PHP »

Cómo mostrar la imagen (html y php)

Estas en el tema de Cómo mostrar la imagen (html y php) en el foro de PHP en Foros del Web. hola,,,, en ocasiones he visto en html que en el "src" del tag <img> ponen la URL de un fichero PHP en el servidor que ...
  #1 (permalink)  
Antiguo 20/04/2005, 06:19
 
Fecha de Ingreso: agosto-2004
Mensajes: 195
Antigüedad: 19 años, 8 meses
Puntos: 0
Cómo mostrar la imagen (html y php)

hola,,,, en ocasiones he visto en html que en el "src" del tag <img> ponen la URL de un fichero PHP en el servidor que devuelve la dirección de una imagen y esta se muestra normalmente en la página... he intentado hacerlo y no me funciona....

ejemplo...

<img src='http://www.qbanos.com/banners/?idb=3&idu=10' width='468' height='60'>

en la carpeta banners de www.qbanos.com está el fichero index.php que recibe el parámetro idb. El script busca el banner de la base de datos con el idb=3 y devuelve la url donde se encuentra la imagen ( echo $url; ), pensé que al devolverle al "src" de <img> la dirección de la imagen esta se mostraría en el navegador sin problema alguno, y no es así,,,.... sin embargo,,, cuando ponemos en el browser la dirección del script PHP.... http://www.qbanos.com/banners/?idb=3&idu=10 nos muestra bien la dirección donde se encuentra el banner...

si no entienden bien de qué se trata visiten http://www.qbanos.com entren con el
user: guest
pass: guest

diríjanse a banners y links y comprueben ahí de qué se trata.

he visto esto hecho en algunos sitios, pero parece que no devuelven la imagen con un echo como lo he hecho yo, si alguien tiene alguna idea de cómo hacerlo.... ???..


saludos
leo...
__________________
http://www.qbanitas.com - Las chicas más lindas de Cuba.

http://www.santaclarahostel.com - casas particulares en Santa Clara, la ciudad del Che.
  #2 (permalink)  
Antiguo 20/04/2005, 07:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo que mencionas se hace vía cabeceras HTTP donde se componen las cabeceras tipo "content-type" con el formato MIME de tu archivo (imagen) que corresponda y siendo PHP el que "lee" tu archivo (imagen en tu caso) entregandolo al buffer de salida de PHP.

Revisa los ejemplos de:
www.php.net/header
www.php.net/readfile

Un saludo,
  #3 (permalink)  
Antiguo 20/04/2005, 08:24
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola qbanos.com:

En este mensaje: http://www.forosdelweb.com/f18/contador-grafico-exclusivo-196461/ puse el código de un contador, y hasta lo puedes ver.
La imagen se crea usando las librerías GD, y por supuesto, tal como ha comentado Cluster (¡Hola !) debes usar una cabecera:

header("Content-Type: image/png");

Es el caso del ejemplo...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 20/04/2005, 11:30
 
Fecha de Ingreso: agosto-2004
Mensajes: 195
Antigüedad: 19 años, 8 meses
Puntos: 0
me dediqué a mirar en la ayuda del PHP y utilizando las funciones que aprarencen llegué a este script que muestra una imagen leida desde un fichero,,,, no soy experto en esto de las imágenes,, si alguien ve algo que para determinada situación no funciona por favor que lo diga....

"getImg.php"

<?php
//la dirección de la imagen en el servidor

$myImg = $_GET["img"];

//definimos la cabecera a devolver al navegador.
header("Content-Type: image/gif");

// la función getimagesize("imagen") nos devuelve el ancho, alto y tipo de la imagen, se le pasa la dirección de la imagen en el servidor

list($width, $height, $type) = getimagesize($myImg);

//según el tipo de la imagen la creamos en memoria y damos la salida 1=gif, 2=jpg, 3=png, 4=swf

if ($type == 1) {

//cargamos la imagen gif en memoria referida por $source
$source = imagecreatefromgif($myImg);

//mostramos la imagen.
imagejpeg($source);

//lo intenté con imagegif($source) y me dio un error
}
elseif ($type == 2) {
$source = imagecreatefromjpeg($myImg);
imagejpeg($source);
}
elseif ($type == 3) {
$source = imagecreatefrompng($myImg);
imagepng($source);
}
elseif ($type == 4) {
// las funciones imagecreatefromswf() y imageswf() el dreamweaver, no sé si estén bien, pero las vi así en internet.

$source = imagecreatefromswf($myImg);
imageswf($source);
}


//liberamos la imagen de la memoria
imagedestroy($source);
?>


con el script mostrado ya podemos hacer lo que necesitaba anteriormente... o sea,, desde un html en el campo "src" del tag "img" mandar a pedir la imagen al servidor de php y este la muestre según el parámetro img pasado por url....

ejemplo..

<img src="getImg.php?img=direccion_de_la_imagen.jpg">

espero se entienda.

saludos
leo.
__________________
http://www.qbanitas.com - Las chicas más lindas de Cuba.

http://www.santaclarahostel.com - casas particulares en Santa Clara, la ciudad del Che.
  #5 (permalink)  
Antiguo 20/04/2005, 12:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero que problema tienes?

Tal vez tu código esté presentando errores pero no los visualizas .. Para eso, (para probar ese tipo de escripts) ..

* primeramente quita o deshabilita las llamadas a cabeceras HTTP (header()) ..
* ejecuta tu script por separado .. llamandolo directamente por el URL:
http://www.nose.nose/getImg.php?img=..._la_imagen.jpg

Y observa .. Si no funciona ahí se deberían estar mostrando algún tipo de error. Tal vez por ejemplo por no poder abrir el archivo .. por no tener instaladas las librerias GD o la versión que el código requiere ...

Cuando digas:
"//lo intenté con imagegif($source) y me dio un error" .. no esperes que lo adivinemos .. PONLO! textual .. aquí par verlo!.

Un saludo,
  #6 (permalink)  
Antiguo 20/04/2005, 14:52
 
Fecha de Ingreso: agosto-2004
Mensajes: 195
Antigüedad: 19 años, 8 meses
Puntos: 0
hola cluster,, je je,,, mira,, ese script que puse no contiene errores,, digo,, ese fue al que llegué luego de leer en la ayuda del PHP,, o sea,, que lo he puesto ahí a modo de ayudar a otros usuarios que le hagan falta algo parecido.....

lo que comenté de imagefig($source) es que la función existe y sin embargo da error al utilizarla,, por eso utilizo imagejpeg...

recuerda, el código lo puse para que le sirva a otros,, yo ya resolví mi problema...

saludos
leo.
__________________
http://www.qbanitas.com - Las chicas más lindas de Cuba.

http://www.santaclarahostel.com - casas particulares en Santa Clara, la ciudad del Che.
  #7 (permalink)  
Antiguo 20/04/2005, 15:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ahh .. OK .. bueno .. por si acaso .. mis recomendaciones sobre como averigüar un fallo o problema son "genéricas" para cualquier tipo de problema tipo "no se vé la imagen . .sale una X" .. (por si acaso a alguien le ayuda).

El tema que comentas sobre imagecreatefromgif() .. tendrías que corroborar que versión de GD usas exactamente .. El soporte "GIF" en las librerías GD ha "ido y venido" varias veces en sus versiones (problemas de licencias con "Compuserver" que es quien tiene los derechos del algorítmo de GIF al parecer si no me equivoco) ... por ejemplo las versiones 1.?nomeacuerdo lo soportaban . . las versiones 2.xnomeacuerdo no lo soportaban y ahora las últimas versiones de GD 2.x parece que soportan (en teoría) GIF en modo sólo lectura .. no escritura.

Un saludo,
  #8 (permalink)  
Antiguo 20/04/2005, 16:16
 
Fecha de Ingreso: agosto-2004
Mensajes: 195
Antigüedad: 19 años, 8 meses
Puntos: 0
Sí,, eso estuve leyendo que las librerías GF 2.x no soportaban imagecreatefromgif() por problemas de licencia,,, peor para nosotros,, si sucede igual con el jpeg tremendo problema...

saludos
leo.
__________________
http://www.qbanitas.com - Las chicas más lindas de Cuba.

http://www.santaclarahostel.com - casas particulares en Santa Clara, la ciudad del Che.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:02.