15 nov 2008

Capturando ventanas/animaciones en Linux/FreeBSD con xwininfo e ImageMagic

Bueno comencemos con lo bueno o cuando menos con las curiosidades del mundo del software libre =) En este post comentare como capturar pantallas mediante utilidades opensource, talvez te preguntes y esto para que me sirve?...
  • Yo lo he usado para generar manuales
  • Reportes de configuracion de algun sistema
  • Hacer animaciones de imagenes =)
  • Usa tu imaginacion >_> xD...
xwininfo: con esta utilidad (incluida en Xorg) obtendremos informacion especifica de una ventana cualquiera que sea, tal informacion puede ser ancho, alto, localizacion, profundidad de colores, etc...

----------------------------------------------------------------------------------------------
[twilight@BSD7 ~]$ xwininfo

xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.

xwininfo: Window id: 0x2e0000e "glN64 v0.4.1 - 17.00 fps"

Absolute upper-left X: 293
Absolute upper-left Y: 194
Relative upper-left X: 0
Relative upper-left Y: 0
Width: 640
Height: 480
Depth: 24
Visual Class: DirectColor
Border width: 0
Class: InputOutput
Colormap: 0x2e0000c (not installed)
Bit Gravity State: ForgetGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +293+194 -91+194 -91-94 +293-94
-geometry 640x480-86-89
----------------------------------------------------------------------------------------------


En este caso, despues de introducir el comando en nuestra terminal, daremos click en la ventana que deseamos capturar. Lo que realmente nos interesa es el "Window ID" (en este caso
0x2e0000e) con el cual, una vez sabiendolo, podremos capturar imagenes de la ventana o inclusive crear animaciones.

import: Utilidad que sirve para generar imagenes a partir del Window ID, entre otras muchas opciones, la cual viene incluida en el paquete de aplicaciones ImageMagic.

----------------------------------------------------------------------------------------------

[twilight@BSD7 ~]$ import -window 0x2e0000e /home/twilight/xwininfo-import.jpg

----------------------------------------------------------------------------------------------


En este ejemplo el parametro -window 0x2e0000e indica cual sera la ventana que capturaremos. El segundo parametro /home/twilight/xwininfo-import.jpg especifica la ruta donde se salvara la imagen. Y con esto obtendremos lo siguiente:


Luego, ya que sabemos como capturar una imagen basta con escribir algun script en bash/sh/csh/tcsh para capturar nuestra secuencia de imagenes.

----------------------------------------------------------------------------------------------

[twilight@BSD7 /usr/home/twilight]$ for (( i = 1; i <= 10; i++)) >do

>sleep 1
>import -window
0x2e0000e /home/twilight/blog/zelda-$i.jpg
>done
[twilight@BSD7 /usr/home/twilight]$

----------------------------------------------------------------------------------------------
Nota: Despues de ejecutar el comando debemos de seleccionar la ventana a capturar, de lo contrario no se capturaran las imagenes. Se escuchara dos 'Beeps' indicando que la imagen ha sido guardada exitosamente.

Este es un ejemplo donde se capturaran 10 imagenes, en intervalos de 1 segundo cada una, y se guardaran en el directorio especificado y el nombre zelda-1.jpg, zelda-2.jpg...



Con esto concluimos la demostracion de como capturar pantallas, repito, esto me ha servido mucho a la hora de hacer manuales de aplicaciones, nadamas tenemos que tener cuidado con el tiempo de espera entre imagen e imagen (comando sleep).

Espero les sirva o que cuando menos se entretengan un rato xD si desean mas cosas ociosas les recomiendo chequen la utilidad animate de ImageMagic para poder crear peliculas a partir de las secuencias de imagenes.

Es todo, me retiro a dormir xD nos vemoussssss =)

No hay comentarios: