Mie May 16, 2007 2:08 pm
|
 |
patito
Perlero Nuevo

|
Registrado: 07 May 2007
Mensajes: 15
|
|
| Imágenes |
|
|
| ¿Cómo le asigno una imagen a una variable? Lo que quiero es guardar la referencia en un campo de una tabla en mysql y después poder asignarla a una variable para poder mandarla a imprimir en pantalla. |
|
|
|
Mie May 16, 2007 3:50 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
|
|
|
|
|
| Leyendo la imagen como un fichero binario... nada más después de hacer el open(), haces un binmode() y a partir de ahí ya puedes hacer un read() del fichero de la imagen a la variable escalar tuya. |
|
Mie May 16, 2007 5:28 pm
|
 |
patito
Perlero Nuevo

|
Registrado: 07 May 2007
Mensajes: 15
|
|
| Imagenes |
|
|
| Podrías poner la idea con código, por favor. |
|
Mie May 16, 2007 6:53 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
|
|
|
|
Jue May 17, 2007 8:30 am
|
 |
patito
Perlero Nuevo

|
Registrado: 07 May 2007
Mensajes: 15
|
|
| Imágenes |
|
|
| ¿Cómo le asigno la referencia de la imagen a $imagen? |
|
Mar May 22, 2007 11:37 am
|
 |
patito
Perlero Nuevo

|
Registrado: 07 May 2007
Mensajes: 15
|
|
| Imagenes |
|
|
Estoy haciéndolo de la siguiente manera y no funciona, puedes apoyarme por favor.
La intención es guardar la referencia por ejemplo el C\winnt\... en un registro de una base de datos, y dependiendo de la consulta se le asigne esa referencia a la variable e imprima en pantalla esa imagen, las imágenes estarían en una carpeta en el servidor:
| Perl: | # asigno la imagen a una variable
$prueba= 'c:\WINNT\Temp\advertencia.gif';
binmode (STDOUT);
print "content-type:image/gif\n\n";
print "$prueba"; |
la mando a imprimir pero me imprime: c:\WINNT\Temp\advertencia.gif |
|

Mar May 22, 2007 12:42 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
|
|
|
|
|
Tienes que hacer el open,while,read,close que te pongo más arriba, y luego, con toda la imagen leída en la varible $img, ya puedes sacarla hacia fuera, con un print $img;
| Perl: | $prueba= 'c:\WINNT\Temp\advertencia.gif';
open my $Imagen, '<', $prueba or die "ERROR: No puedo leer la imagen $prueba: $!\n";
binmode($Imagen);
while ( read($Imagen, $buffer, 1024) ) {
$img .= $buffer; # Leemos la imagen en bloques de 1k
}
close $Imagen;
binmode (STDOUT);
print "Content-type:image/gif\n\n";
print $img; |
|
|
Mar May 22, 2007 1:34 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
|
|
|
|

Mar May 22, 2007 2:09 pm
|
 |
patito
Perlero Nuevo

|
Registrado: 07 May 2007
Mensajes: 15
|
|
| imagenes |
|
|
| Código: |
mysql> SELECT * FROM IMAGENES2;
+----+----------------------------------+
| ID | IMAGEN |
+----+----------------------------------+
| 1 | /evaluacion/Images/area_cme1.gif |
| 2 | /evaluacion/Images/borrar.jpg |
+----+----------------------------------+
2 rows in set (0.00 sec) |
| Perl: | $db=DBI-> connect("dbi:$driver:$BD:$host", $user, $clave);
$query= $db-> prepare("select IMAGEN FROM imagenes2 WHERE ID='2'");
$query-> execute;
($IMAGEN)= $query-> fetchrow_array;
$query-> finish;
print <<inicio_HTML;
<html>
<head>
<title>Imagen</title>
<meta http-equiv= "Content-Type" content= "text/html; charset=iso-8859-1">
</head>
<body bgcolor= "#FFFFFF">
<table>
<tr>
<td width= "40" height= "20" colspan= "4" valign= "top"><img src= "$IMAGEN" width= "100"></td>
</tr>
</table>
</body>
</html>
inicio_HTML
$sth-> finish();
$db-> disconnect();
exit; |
Lo hice de esta manera. Muchas gracias. |
|

Lun Jun 04, 2007 1:45 pm
|
 |
patito
Perlero Nuevo

|
Registrado: 07 May 2007
Mensajes: 15
|
|
| imagenes |
|
|
| pero ahora que lo tengo asi, y que ya aparece la imagen, como le hago ahora para que tambien pueda imprimir texto, en caso de que el valor en el campo no sea una referencia a una imagen, si no texto, ya que al poner el <img src=$IMAGEN y si la variable contiene texto aparece un cuadro con una cruz roja por que esta esperando una imagen, de que manera puedo alternar entre imprimir imagen o texto? |
|

Lun Jun 04, 2007 2:27 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
|
|
|
|
|
En el programa estás haciendo un print muy largo que imprime toda la página HTML.
Lo que puedes hacer es escalonar la salida:
Primero imprimes la cabecera y la primera parte de la página. Segundo, haces un 'if' para saber si lo que tienes que imprimir es imagen o texto. Según sea un caso u otro harás un print distinto: o un print de una marca <img> o de una marca <p> (párrafo), como contenidos de la celda.
Tercero, imprimes el resto de la página (desde el final de celda de tabla hasta el final). |
|
Powered by phpBB © 2001, 2005 phpBB Group
|