• Publicidad

Cómo evaluar las dimensiones de una imagen

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Cómo evaluar las dimensiones de una imagen

Notapor charlygarcia » 2009-11-27 16:23 @724

Cordial saludo a todos.

Mi pregunta, como todas las mías es básica y agradezco de antemano toda la colaboración.

Tengo un script en Perl que saca de una base de datos un campo donde está la URL de una imagen. Ejemplo:

http://img130.imageshack.us/img130/1420/webhosting1.jpg

y tengo dicha ruta en una variable. Código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#ejm ruta='http://img130.imageshack.us/img130/1420/webhosting1.jpg';
$ruta_img = $registro[3];
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Necesito tomar las dimensiones de dicha imagen teniendo solo la URL, para poder tomar unas decisiones en el código con respecto a cada imagen en la base de datos.

Para esta imagen las dimensiones son 400x533 y me gustaría tener dos variables en mi código llamadas $dimx y $dimy que me almacenen las dimensiones de dicha imagen (400 y 533).

No sé si se puede hacer pero agradezco cualquier colaboración.

CG
[text]¿Cómo lograr que no se seque una gota de agua? Arrojándola al mar. [/text] - Nota: Este tag no se puede utilizar en firmas.Samsara
Avatar de Usuario
charlygarcia
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2009-03-06 23:16 @011

Publicidad

Re: como evaluar las dimensiones de una imagen ?

Notapor erv-Z » 2009-11-27 17:07 @754

Lee http://perlenespanol.com/tutoriales/gra ... genes.html

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2.  
  3. use strict;
  4. use Image::Size;
  5.  
  6. # ruta absoluta a tu imagen, también puede ser relativa al directorio
  7. my $img = "/ruta/absoluta/imagen.jpg";
  8.  
  9. my ($ancho, $alto) = imgsize($img);
  10.  
  11. #Imprimir dimensiones
  12. print "Imagen: $img\n";
  13. print "$ancho x $alto\n";
  14.  
  15. exit(1);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Saludos.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Cómo evaluar las dimensiones de una imagen

Notapor explorer » 2009-11-27 17:54 @787

La solución propuesta por erv-Z es solo la mitad de la solución: primero tienes que bajarte la imagen a tu ordenador.

Habría una posibilidad de saber las dimensiones de la imagen, sin tener que bajarla: si esa información la podemos obtener en otro sitio, por ejemplo, en la página HTML que sostiene a esa imagen.

En HTML, la marca que muestra imágenes es algo así:

<img src="http://img130.imageshack.us/img130/1420/webhosting1.jpg" width="400" height="533" />

por lo que entonces es fácil sacar las dimensiones.

En otras ocasiones, la imagen que sale en la página no es de las dimensiones que nos interesan sino que es una versión reducida. Es el caso de flickr.com, donde nos enseñan una imagen y en la parte superior de ella, todas las resoluciones posibles. En ese caso, la información sigue estando en código HTML y también sabríamos esas dimensiones, eligiendo de entre todas las combinaciones.

Pero si esa información no está en ninguna otra parte, no nos queda más remedio que bajar la imagen.

Y aún así, tampoco es necesario bajarla del todo: algunos formatos de imágenes guardan la información de sus dimensiones en los primeros bytes del fichero. Solo tendrías que bajarte lo suficiente para leer esos bytes.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cómo evaluar las dimensiones de una imagen

Notapor erv-Z » 2009-11-27 20:12 @883

También sería una opción bajarte la imagen, leerla y luego con un comando la eliminas y todo estaría limpio...
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Cómo evaluar las dimensiones de una imagen

Notapor charlygarcia » 2009-11-27 21:33 @939

¿¿¿Pero cómo hacerlo sin usar

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Image::Size;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


???

Agradezco sus respuestas.
[text]¿Cómo lograr que no se seque una gota de agua? Arrojándola al mar. [/text] - Nota: Este tag no se puede utilizar en firmas.Samsara
Avatar de Usuario
charlygarcia
Perlero nuevo
Perlero nuevo
 
Mensajes: 54
Registrado: 2009-03-06 23:16 @011

Re: Cómo evaluar las dimensiones de una imagen

Notapor explorer » 2009-11-27 22:27 @977

Si no puedes obtener la información de un HTML, como te he contado antes, no puedes saberlo sin leer la imagen.

El protocolo HTTP no da información sobre las dimensiones del fichero. Como mucho, nos da el tipo de fichero MIME y el tamaño en bytes de lo que ocupa.

Repito: si no existe el dato en una página HTML asociada, tendrás que bajarte la imagen entera para analizarla localmente. O bajar solo la parte de la cabecera que sabes que contiene sus dimensiones, para extraerlas. Por ejemplo, bajarte los primeros 2Kb y luego con la ayuda de un módulo, como Image::Size, saber esas dimensiones.

En resumen: no podemos saber las dimensiones de la imagen si no tenemos, físicamente, la imagen, a nuestro lado. Solo a través de un URL no lo podrás saber.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 40 invitados