miércoles, 31 de octubre de 2012

Script en perl para ver las dimensiones de una imagen


Como dije,en el lapso del tiempo en el que haga los tutoriales de perl,sacare pequeños programas para que vean para que funciona perl,ya que me he dado cuenta de que muchas personas dicen y me han dicho que no es muy funcional perl,que mejor ponga tutoriales de python,pero no perl es muy muy funcional,para muchas cosas y es mi lenguaje de programación interpretado favorito y sirve para muchas cosas al igual que como hemos visto con bash,solo que perl reune lo mejor de C,sh,AWK, sed, Lisp para poder crear programas como el que vamos a ver hasta programas muy muy potentes,ya sea para multimedia o seguridad informática ademas de muchas otras cosas mas.

Bueno esta entrada no es una parte de nuestra serie te tutoriales sobre perl,solo es un ejemplo de un script que te puede servir para algo como a mi me ha servido.

Nota:Esto es programación si se te hace complicado puedes usar herramientas como gimp,o un visor de imágenes con esta cualidad, que son muchos.Este es un ejemplo para entusiastas a la programación Perl


Lo que hace este script es solo mostrar las dimensiones de una imagen

Ancho por alto

Hice dos scripts

1.Lo lee por entrada del teclado

Así es,es leída la ruta por el teclado, así que no tendrás que poner la ruta en el script sino que la escribirás a la hora de ejecutar el programa.



2.Aun mejor,si tienes zenity lo puedes hacer mas simple,solo ejecutas el script y abrira un buscador grafico ya con las extensiones filtradas.

Primero que nada,necesita el modulo Image::Size

Aprendimos a instalar módulos en la entrada pasada

Enlace

Así que lo instalamos con CPAN

install Image::Size

Y aquí el código

Script 1 sin zenity



Si necesitas saber las dimensiones de una imagen desde un sistema sin shell grafica prueba este script



Enlace

Explicado con #

#!/usr/bin/env perl

use strict;
use Image::Size; # Usar modulo
system("clear"); # limpiar pantalla

print "Ruta de la imagen :"; # < Imprimimos eso
my $imagen = <STDIN>; # Ruta desde entrada del teclado

chop($imagen); # Limpiamos la entrada

my ($ancho, $alto) = imgsize($imagen); # Comandos que miden la imagen

print "Tu imagen $imagen es de :\n";  # < Imprimimos esto
print "Ancho: $ancho x Alto: $alto\n"; # Imprimimos medidas
exit(1);



Script 2 con zenity




Si tienes zenity y gnome,xfce u otro escritorio que soporte zenity y quieres ver un poco de perl en acción,prueba este script

Enlace

Explicado

#!/usr/bin/env perl

use strict;
use Image::Size; # Usar modulo 
system("clear"); # limpiar pantalla

print "Ruta de la imagen :  \n"; # < Imprimimos eso

my @formatos = ( # Array con los formatos compatibles(hay mas)

 'formatos --file-filter=*.JPG',
 'formatos --file-filter=*.bmp',
 'formatos --file-filter=*.jpeg',
 'formatos --file-filter=*.jpg',
 'formatos --file-filter=*.png',
 'formatos --file-filter=*.tif',
 'formatos --file-filter=*.xbm',
 'formatos --file-filter=*.xpm',
 'formatos --file-filter=*.gif'
);

my $imagen =`zenity --file-selection @formatos --title="Selecciona una imagen"`;

# ^ Variable que abre zenity

chop($imagen);  # Limpiamos la seleccion

if ( $imagen eq $1 ) { # Estructura selectiva para ver si se selecciono algo con zenty

print "No elegiste una imagen\n";
exit(1);
}
else{ # Si se selciono algo se ejecuta lo siguiente

my ($ancho, $alto) = imgsize($imagen); # Comandos que miden la imagen

print "Tu imagen $imagen es de :\n";
print "Ancho: $ancho x Alto: $alto\n"; # Imprimos las medidas

exit(1);
}

Para usarlo creen un documento .pl 

En terminal

touch dimension-imagen.pl

Luego con tu editor favorito

editor_favorito dimension-imagen.pl

Por ejemplo

vim dimension-imagen.pl

Pegan el código



Y guardan

Luego le dan permisos de ejecución

chmod +x dimension-imagen.pl

Y ejecutan

./dimension-imagen.pl

Eso es todo

Si no tienes zenity puedes instalarlo ya que el segundo script es mucho mas útil  si usas Gnome,XFCE con

Para Ubuntu

sudo apt-get install zenity

Para openSUSE

sudo zypper in zenity

Para Archlinux

sudo pacman -S zenity

Para Gentoo

Como root

emerge zenity

Bueno puede que el script sea mucha molestia ya que esto se hace con clic derecho información y ahí están los pixeles,pero hay que hacer desde lo basico para poder hacer cosas mas grandes,espero que les haya servido y hayan aprendido algunas cosas.

No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.