Sign up to create your own snipts, or login.

Public snipts » eddye's snipts » script para tirar screenshot

posted on Oct 12, 2009 at 11:33 p.m. EDT in 
  • #!/bin/bash
    
    ### 
    # screenshot.sh
    #
    # Este script tira screenshots da tela inteira
    # ou tela selecionada (por região).
    #
    # Gera imagem no formato screenshot-data-hora.png.
    # Necessário ImageMagick.
    #
    # Versão 0.1:
    #	-r (região/janela específica);
    #	-d (local para salvar as imagens);
    #	Caso não tenha parâmetros, salva imagem em $HOME
    #
    #	Edsandro Freitas @ 13/10/09 ~ 00:15
    ###
    
    # Diretório padrão onde as imagens serão salvas
    DIR="$HOME"
    
    # Carrega a data e hora atual
    # No formato: dd.mm.aa-hh.MM.ss
    data_hora=$(date +"%d.%m.%y-%H.%M.%S")
    
    # Se a screen é de uma região ou janela = 1
    # senão é tela inteira (= 0)
    regiao=0
    
    
    MENSAGEM_USO="
    Uso: $(basename "$0") [OPÇÕES]
    
    OPÇÕES:
    	-r, --regiao	Screenshot de uma janela ou região específica
    			Se omitido, a imagem será da área de trabalho
    	-d, --diretorio	Local para salvar as screenshots (padrão '$HOME')
    			Exemplo: /home/usuario/imagens
    	-a, --ajuda	Mostra esta tela de ajuda e sai
    	-v, --versao	Mostra a versão do programa e sai
    "
    
    # Trata opções de linha de comando
    while test -n "$1"
    do
    	case "$1" in
    		-a | --ajuda)
    			echo "$MENSAGEM_USO"
    			exit 0
    		;;
    
    		-v | --versao)
    			echo -n $(basename "$0")
    			# Extrai versão do cabeçalho do programa
    			grep '^# Versão ' "$0" | tail -1 | cut -d : -f 1 | tr -d \#
    			exit 0
    		;;
    
    		-d | --diretorio)
    			shift
    			DIR="$1"
    			
    			# Se diretório não existir, crie !
    			if [ ! -d "${DIR}" ]; 
    				then mkdir "${DIR}"; 
    			fi
    		;;
    
    		-r | --regiao)
    			regiao=1
    		;;
    
    		*)
    			echo Opção inválida: $1
    			exit 1
    		;;
    			
    	esac
    
    	# Opção $1 foi processada, pega próxima opçao
    	shift
    
    done
    			
    # Nome do arquivo (diretório + data/hora)
    NOME="${DIR}/screenshot-${data_hora}.png"
    
    # Tira a screenshot, da região ou toda tela
    if test "$regiao" = "1"
    then
    	# screenshot de uma região ou janela específica
    	$(import "${NOME}")
    else
    	# screenshot da tela inteira
    	$(import -window root "${NOME}")
    fi
    

    copy | embed

0 Comments

Sign up, or login to leave a comment.