Capturando screenshots com Shell Script

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

[ Hits: 9.093 ]

Blog: https://fabio.automatizando.dev

 


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

Configurando um drive de CD-RW com interface IDE

Contagem regressiva no terminal

Como gravar uma ISO no pendrive/USD externo

Sintaxe alternativa para encontrar arquivos por data com o comando find

Primeira Conferencia Hacker no Brasil

Leitura recomendada

Aulas Shell Script do zero - Parte 1

Apagar linhas comentadas de arquivos

Shell Script nosso de cada dia - Episódio 1

cut - Comando com exemplos

Variáveis em bash

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts