Capturando tela em modo gráfico (Melhorado)

Publicado por Sandro Marcell 14/10/2008

[ Hits: 5.805 ]

Homepage: http://sanmarcell.wordpress.com

Download sshot.sh




Simples shell script que "tira" screenshots do desktop do usuário.

P.S.: Já havia postado aqui no VoL uma versão desse script, porém, resolvi dar uma exugada em seu código, por isso, estou "repostando" o script!

Espero que curtam...

Falou!!! =)

  



Esconder código-fonte

#!/bin/sh
#
# Capturando tela em modo grafico.
#
# Sandro Marcell (sandro_marcell@yahoo.com.br)
# Boa Vista, Roraima - 04/11/2007 (Atualizado em 17/08/2008).
#
# 17/08/2008
# - Todo o codigo do script foi "enxugado".
#
# Este script pode tirar uma 'screenshot' de toda sua area de trabalho
# ou apenas duma janela especifica. Para tanto, basta que na tela 
# inicial se pressione:
# - Botao 'Tela'   = Captura toda tela;
# - Botao 'Janela' = Captura janela especifica.
#
# Dependencias: xmessage e import (pacote ImageMagick).
PATH=/bin:/usr/bin:/usr/local/bin
prog=`basename ${0}`

# Definindo a qualidade de captura da imagem:
__defqld__ ()
{
   # Caixa de selecao de qualidade:
   selec=`xmessage -title "$prog" -buttons Alta,Baixa,Media -print \
   -center "Que qualidade deseja para a imagem a ser criada?"      `

   # Opcao escolhida:
   case "$selec" in
      Baixa) qld=25  ;;
      Media) qld=50  ;;
      Alta ) qld=100 ;;
      *    ) exit 1  ;;
   esac
}

# Funcao que verifica o resultado da operacao:
__verifica__ ()
{
   # Checando o codigo de retorno do comando 'import':
   if [ $cret -eq 0 ]
   then
      # Captura bem sucedida:
      xmessage -title "$prog" -center \
      "${HOME}/$$.jpg: "$opc" capturada com sucesso."
      # Removendo arquivo de log:
      rm -f /tmp/$$
      exit
   else
      # Erro: Informando o erro ocorrido:
      xmessage -title "Erro" -center -file /tmp/$$
      rm -f /tmp/$$
      exit 1
   fi
}

# Janela principal: Opcoes disponiveis para o usuario:
opc=`xmessage -title "$prog" -buttons Tela,Janela,Nada \
         -print -center "O que deseja capturar?"  `
      
# Verificando e executando a opcao escolhida:
if [ "$opc" = "Tela" ]
then
   # Chamando a funcao '__defqld__':
   __defqld__

   # Capturando...
   import -silent -dither -window root -quality "$qld" \
   -pause 1 ${HOME}/$$.jpg 2> /tmp/$$
   
   # Armazenando o codigo de retorno do comando 'import':
   cret=$?
   # Chamando a funcao '__verifica__':
   __verifica__
elif [ "$opc" = "Janela" ]
then
   __defqld__
   # Aviso ao usuario:
   xmessage -title "$prog" -buttons Ok:0 -center \
"Ao clicar em 'Ok' um cursor aparecera, use-o para clicar sobre
a janela que deseja capturar!"

   # O usuario pressionou o botao 'Ok'?
   if [ $? -eq 0 ]
   then
      import -silent -dither -screen -quality "$qld" \
      -pause 1 ${HOME}/$$.jpg 2> /tmp/$$
      cret=$?
      __verifica__
   else
      exit $?
   fi
elif [ "$opc" = "Nada" ]
then
   exit 1
else
   exit $?
fi
# Fim

Scripts recomendados

Script Simples para informações do Sistema

Agenda de contaos usando dialog

Acelerar leitura e escrita no hd

Atualizar status do Twitter pelo terminal

Download via wget


  

Comentários
[1] Comentário enviado por marcopolo em 16/10/2008 - 23:15h

Sandro,

Como posso usar esse script?

[2] Comentário enviado por SMarcell em 17/10/2008 - 01:31h

Abra um terminal, acesse o diretório (a pasta) onde você salvou o código do script, e execute:

$ chmod +x nome_do_script

Feito isso, basta executá-lo via terminal:

$ ./nome_do_script

ou dando um clique duplo no arquivo.

[3] Comentário enviado por xerxeslins em 22/11/2008 - 22:58h

interessante,

sabe me dizer por quê a transparência do meu terminal não sai na screenshot, mesmo em qualidade alta?
o terminal fica preto na screenshot, sendo que ele está transparente.
Não deve ser nada com o seu script, mas de repente vc sabe o motivo.

valeu

[4] Comentário enviado por vitinho217 em 23/06/2014 - 09:51h

Pacotes requeridos (ubuntu):

* imagemagick
* graphicsmagick-imagemagick-compat

VIVA O LINUX !


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts