Para as capturas de pantalla dos posts sobre Xogos de código aberto necesito un programa que cada certo tempo faga unha captura de pantalla. Hai moitos que fan capturas de pantalla, pero o único que atopei que fixera varias foi xvidcap. Está pensado para facer vídeos de presentación, co que ten a opción de cuspir directamente en formato vídeo ou imaxes soltas. Hai un tempo dera conseguido que me funcionase, pero agora, cando o intentei, non o din nin compilado nin instalado os pacotes binarios que hai por ahí.

Acabei descubrindo que as X traen un programa que se encarga de facer capturas de pantalla. Chámase xwd e en debian atópase no pacote xbase-clients. Pode facer capturas de toda a pantalla ou de fiestras en particular, pero nun formato propio: “X Window Dump image data”. Por sorte con Imagemagick poderémolo converter a calquera outro formato de imaxe máis normal.

O caso é que acabei facendo dous pequenos Shell Scripts: capturar.sh e converter.sh, o primeiro para face-las capturas mentres ando polo xogo e o segundo para as converter a PNG.

capturar.sh

#! /bin/sh
# capturar.sh crea capturas de pantalla de toda a pantalla en formato xwd
# con nomes $i.xwd con un determinado intervalo de tempo entre
# captura e captura.
#
# capturar.sh DENDE ATA ESPERA
#
# Dependencias: xwd (X)
#
# DENDE: valor da primeira captura de pantalla (por defecto 0)
# ATA: valor da última captura de pantalla (Por defecto DENDE + 1000)
# ESPERA: tempo que se espera entre captura e captura (por defecto 5 segundos)

if [ “$1” ]; then
    since=$1
else
    since=0
fi

if [ “$2” ]; then
    to=$2
else
    let to=${since}+1000
fi

if [ “$3” ]; then
    secs=$3
else
    secs=5
fi

for i in `seq -w ${since} ${to}`; do
    echo -ne “r${i}.xwd”
    xwd -root -screen -silent > ${i}.xwd
    sleep ${secs}s
done

converter.sh

#! /bin/sh
# converter.sh converte do formato xwd ata FORMATO.
#
# converter.sh DENDE ATA FORMATO
#
# Dependencias: convert (Imagemagick)
#
# DENDE: valor da primeira captura de pantalla (por defecto 0)
# ATA: valor da última captura de pantalla (Por defecto DENDE + 1000)
# FORMATO: (por defecto png)

if [ “$1” ]; then
    since=$1
else
    since=0
fi

if [ “$2” ]; then
    to=$2
else
    let to=${since}+1000
fi

if [ “$3” ]; then
    format=$3
else
    format=png
fi

for i in `seq -w ${since} ${to}`; do
    echo -ne “r${i}.xwd -> ${i}.${format}”
    convert ${i}.xwd ${i}.${format} 2> /dev/null
done


Categories

Calendario

Xuño 2006
M T W T F S S
« Mai   Xul »
 1234
567891011
12131415161718
19202122232425
2627282930  
3K2 theme by Hakan Aydin