Pular para o conteúdo

Capturando screenshots com Shell Script

Dica publicada em Shell Script / Introdução
Fábio Berbert de Paula fabio
Hits: 9.927 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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"
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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".

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Jogando Gamão no GNU/Linux e no FIBS

Como gravar uma ISO no pendrive/USD externo

Emulador WineX 3.1 para Debian

Agendando execução de scripts PHP

Como capturar uma janela específica usando o ImageMagick

Criando e utilizando uma "biblioteca de funções"

Backup no runlevel 0 (Slackware 11)

Onde está a linha que preciso editar? [Resolvido]

Três formas de executar HTTP Request em Shell Script

Como manter seu código atualizado com um repositório Git remoto

#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

Entre na sua conta para comentar.