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.