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

Como editar arquivos remotos usando o Vim

Coderbyte - teste seus conhecimentos em programação!

Descubra o quanto você já gastou na Google Play

Lista de distribuições Live CD

MongoDB Community Edition 4.2 no Debian 10 Buster

VirtualBox - Compartilhando pastas Linux vs Linux

Venha Conhecer o Yad

Criar "ícone" para executar Scripts

Variáveis em bash

Pacman colorido no Arch Linux

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