Capturando screenshots com Shell Script

Publicado por Fábio Berbert de Paula em 20/12/2012

[ Hits: 7.071 ]

Blog: https://youtube.com/c/cotidianohackeado

 


Capturando screenshots com Shell Script



Nesta dica veremos como criar um script para capturar um screenshot de nosso desktop, onde será possível determinar quantos segundos esperar para capturar a tela, assim como definir o nome do arquivo resultante, formato e se vamos capturar a tela inteira ou uma determinada janela.

O funcionamento do script é baseado no comando import, que faz parte do pacote ImageMagick. Para instalar, digite:

sudo apt-get install imagemagick

As ferramentas do ImageMagick são indispensáveis para todo bom usuário Desktop de GNU/Linux. Se você ainda não as conhece, faça-me o favor:

man ImageMagick

A sintaxe para tirar um screenshot da tela com import é:

import -w root [arquivo].[extensao]

Onde:
  • -w root :: indica que todo o desktop será capturado;
  • [arquivo].[extensao] :: nome do arquivo resultante e extensão. O formato do arquivo criado será determinado pelo tipo de extensão escolhido, que pode ser png, jpg, gif, bmp etc. O ImageMagick suporta aproximadamente 100 formatos de arquivos.

Script para captura de tela

Crie o arquivo:

vim ~/capturar.sh

E cole o seguinte conteúdo:

#!/bin/bash
# Capturar tela com import
# Criado por Fábio Berbert de Paula <fberbert no Gmail>
#
# Uso:
#
# ./capturar.sh [-r] [-o arquivo] [-s segundos]
#

#inicializando variáveis

root=0
segundos=0
arquivo="/tmp/captura.$$.png"

while getopts :o:s:r VAR; do
   case $VAR in
      o) arquivo=${OPTARG} ;;
      s) segundos=${OPTARG} ;;
      r) root="1" ;;
   esac
done

#aguardando o tempo informado
sleep $segundos

#capturando a tela
if [ $root -eq 0 ]
then
   import $arquivo
else
   import -w root $arquivo
fi

echo "Tela salva em: $arquivo"

Download do código acima: capturar.sh

Torne-o executável:

chmod a+x ~/capturar.sh

E execute:

./capturar.sh

Será solicitado que você clique na janela que deseja capturar. Um arquivo com nome "captura.xxx.png" será criado no diretório /tmp/, onde xxx será substituído pelo PID do processo.

Caso queira capturar a tela inteira, basta adicionar a opção "-r" (root window), ficando assim:

./capturar.sh -r

Você também pode especificar o nome do arquivo resultante e seu formato. Para isso basta adicionar a opção "-o" e escolher a extensão de arquivo desejada. Exemplo:

./capturar.sh -r -o minha-tela.pdf

Que vai capturar toda a sua tela e salvar no arquivo minha-tela.pdf, em formato PDF.

E caso queira fazer com que o script aguarde algum tempo antes de tirar o screenshot, use a opção "-s [segundos]". Exemplo:

./capturar.sh -r -o esperar.png -s 5

O script aguardará 5 segundos para capturar a tela e salvar em "esperar.png".

Outras dicas deste autor

Exim - Removendo todas as mensagens da fila de espera (spool)

Flashback: Como o Google via a internet em 2001

Desenhando diagramas UML no Linux

VLC para Android

Como recuperar uma senha salva no Chrome ou Firefox

Leitura recomendada

Curso de Shell Script

Aulas Shell Script do zero - Parte 6

Comando "sed" com parâmetro que aceita barra " / "

Variáveis em bash

Aulas Shell Script do zero - Parte 5

  

Comentários
[1] Comentário enviado por smarcell em 21/12/2012 - 16:40h

A suite ImageMagick é fantástica! A várias ferramentas incrivéis.



Contribuir com comentário