Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » HTML » Imágenes Responder al tema
Nuevo tema


Página 1 de 1  [ 12 mensajes ] 
 
Nota 2007-05-16 15:08 @672

Perlero Nuevo
Registrado: 2007-05-07 22:23 @974
Mensajes: 16
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.


Nota 2007-05-16 16:50 @743
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10260
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.


Nota 2007-05-16 18:28 @811

Perlero Nuevo
Registrado: 2007-05-07 22:23 @974
Mensajes: 16
Imagenes
Podrías poner la idea con código, por favor.


Nota 2007-05-16 19:53 @870
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10260
De memoria (no probado):

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
open my $Imagen, '<', 'imagen.jpg' or die "ERROR: No puedo leer la imagen: $!\n";

binmode($Imagen);
my $bufffer;
my $img;
while ( read($Imagen, $buffer, 1024) ) {
    $img .= $buffer;
}

close $Imagen;

Por este foro hay más ejemplos con binmode. Usa el sistema de búsqueda. En la parte de Tutoriales hay uno con algo parecido: http://perlenespanol.baboonsoftware.com ... datos.html


Nota 2007-05-17 09:30 @438

Perlero Nuevo
Registrado: 2007-05-07 22:23 @974
Mensajes: 16
Imágenes
¿Cómo le asigno la referencia de la imagen a $imagen?


Nota 2007-05-17 17:10 @757
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10260
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
$imagen = '/camino/a/la/imagen.jpeg';


Nota 2007-05-22 12:37 @567

Perlero Nuevo
Registrado: 2007-05-07 22:23 @974
Mensajes: 16
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:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
# 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


Nota 2007-05-22 13:42 @612
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10260
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;

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
$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;


Nota 2007-05-22 14:34 @649
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10260
En este hilo tienes un ejemplo concreto:
http://perlenespanol.baboonsoftware.com ... ut693.html


Nota 2007-05-22 15:09 @673

Perlero Nuevo
Registrado: 2007-05-07 22:23 @974
Mensajes: 16
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)


Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
$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.


Nota 2007-06-04 14:45 @656

Perlero Nuevo
Registrado: 2007-05-07 22:23 @974
Mensajes: 16
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?


Nota 2007-06-04 15:27 @685
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10260
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).


Responder al tema  [ 12 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO