Screenshot.sh

Fevereiro 2017





Apresentação


Eis um pequeno script baseado nas ferramentas do ImageMagic para realizar capturas de tela (completas ou parciais ), com o a mais da criação de uma cópia da captura "anotada", quer dizer acrescentando um quadro e uma anotação (a data para ser preciso).

Além do mais ele disponibiliza um pequeno utilitário nomeado Xdialog (criação de caixa de diálogo simples ) lhe oferecendo a possibilidade de configurar alguma variável do dito script.

Pré-requisito



Nota : No Gnome, existe um equivalente à Xdialog que se chama Zenity.
Tem também Kdialog no KDE.

Sintaxe


screenshot.sh [<setup>]

Utilização


A primeira vez que é lançado o scrit com o parâmetro « setup » para configurar o diretório de destino, o prefixo de suas capturas bem como a extensão
screenshot.sh setup
Depois de definidas as variáveis definidas, você poderá chamar simplesmente o script a partir da linha de comando, ou então a partir de um "lançador"no seu desktop ou ainda na barra de tarefas.

Uma primeira caixa de diálogo (facultativa) lhe informará que depois de seu fechamento você terá um prazo de 3 segundos (parametráveis no script ) para escolher o desktop sobre o qual deve ser feito a captura.

No aparecimento do cursor do ImageMagic (em forma de cruz ), faça um clique sobre a janela que deve ser capturada (ou o desktop ) ou então desenhar com a ajuda da cruz ou um retângulo (ao deslizar seu mouse segurando o clique esquerdo ) e soltando quando chegar ao destino.

Uma imagem e seu duplo anotado serão criadas nop diretório no momento do setup.

Você pode definir a configuração novamente em qualquer momento a ore-lançar o « setup », ou modificando as variáveis à mão.

Código fonte


#! /bin/bash  

# @(#)  
# @(#) screenshot 17/06/2007  
# @(#) version 0.1 - auteur : JP  
# @(#)  
# @(#) screenshot é um pequeno programa de captura de tela baseado no  
# @(#) ImageMagic ee que serve-se do Xdialog  
# @(#)  
# @(#) Uso : screenshot [< setup >]  
# @(#)  

### Função setup ###  
função setup {  

# Apagamento dos valores antes da inicialização  
sed -i '/^#A$/,/^#Z$/ s|^DIRETORIO =.*|DIRETORIO=|' $0  
sed -i '/^#A$/,/^#Z$/ s|^NOME_IMAGEM=.*|NOME_IMAGEM=|' $0  
sed -i '/^#A$/,/^#Z$/ s|^EXT=.*|EXT=|' $0  

# Escolha diretório  
DIRETORIO=$(Xdialog --stdout --title "Répertoire" --dselect "$HOME" 0 0)  
#Recuperaçéao do código retorno  
RETVAL="$?"  
# Teste variável vazio. Se sim inicialização valor padrão  
if [ -z "${DIRETORIO }" ]  
then DIRETORIO="${HOME}/"  
fi  
# Teste código retorno Xdialog (veja  doc Xdialog para +informação)  
#+ Com um código igual à 0 inicializa-se a variável DIRETORIO com o valor fornecido.  
#++ Em todos os casos ela é inicializada com o valor padrão ($HOME)  
case "$RETVAL" in  
0) sed -i "/^#A$/,/^#Z$/ s|DIRETORIO =|&\"${DIRETORIO }\"|" $0  
 mkdir -p "$DIRETORIO";;  

  • ) Xdialog --title "Annulation" --msgbox "\nLe répertoire par défaut\n\n$HOME\n\n\
sera utilisé...\n" 10 50 sed -i "/^#A$/,/^#Z$/ s|DIRETORIO=|&\"$HOME/\"|" $0;; esac # Escolhanome NOME_IMAGEM=$(Xdialog --stdout --title "Nome da imagem" \ --inputbox "Entre um nome de referência para as imagens " 0 0) RETVAL="$?" if [ -z "${NOME_IMAGEM}" ] then NOME_IMAGEM="captura" fi case "$RETVAL" in 0) sed -i "/^#A$/,/^#Z$/ s/NOME_IMAGEM=/&\"${NOME_IMAGEM}\"/" $0;;
  • ) Xdialog --title "Anulação" --msgbox "\nLe nome genérico padrão \n\ncaptura\n\n\
Seá utilizado...\n" 10 50 sed -i "/^#A$/,/^#Z$/ s/NOME_IMAGEM=/&\"captura\"/" $0;; esac # Escolha extensão Xdialog --no-tags --radiolist "Tipo de extensão" 0 0 7 \ ".png" "png - Portable Network Graphic" on \ ".jpg" "jpg ou jpeg - Joint Photographic Experts Group" off \ ".gif" "gif - Graphic Interchange Format" off \ ".bmp" "bmp - BitMaP" off \ ".tif" "tif ou tiff - Tag(ged) Image File Format" off 2>/tmp/radiolist.tmp.$$ RETVAL=$? EXT=$(cat /tmp/radiolist.tmp.$$) rm -f /tmp/radiolist.tmp.$$ case $RETVAL in 0) sed -i.4.bak "/^#A$/,/^#Z$/ s/EXT=/&\"${EXT}\"/" $0;;
  • ) Xdialog --title "Anulação" --msgbox "\nA extensão geram \n\npng\n\n\
Será utilizada...\n" 10 50 sed -i.5.bak "/^#A$/,/^#Z$/ s/EXT=/&\"\.png\"/" $0;; esac Xdialog --title "Setup" --msgbox "\nOs parâmetros de configuração foram atualizados :\ \n\nDIRETORIO = ${DIRETORIO}\ \nNom = ${NOME_IMAGEM}\ \nExtensão = ${EXT}\ \n\nQueira re-lançar o script por favor...\ \n\n" 0 0 # O setup terminou, fecha-se o script exit } # Teste de existência de um parâmetro (setup) if [ -n "$1" ] then case "$1" in setup) setup # Parâmetro presente, lança-se a função ;;
  • ) Xdialog --title "Erreur" --msgbox "\nO script só tem um parâmetro \
\nen option.\n\nUsage : screenshot < setup >\n" 0 0 exit ;; esac fi # Suprime-se a função da memória unset setup ### Declaração das variáveis (depois do lançamento do setup) #A DIRETORIO= NOME_IMAGEM= EXT= #Z # Teste de existência de um arquivo que contém o valor da variável ${NOME_IMAGEM} #+ Se a condição é verdadeira então se extrai o número do contador #++ afim de implementar o contador ($COUNT) de um passo if [ -e $(ls "${DIRETORIO}" | egrep \b${NOME_IMAGEM}) ] then NUM=$(ls ${DIRETORIO} | egrep "\b${NOME_IMAGEM}" | sed 's/[^0-9]*//g'| sort -nr | sed 1q) COUNT=$(expr ${NUM} + 1) fi # Caixa de dialogo de ajuda na abertura - Facultativo - /usr/bin/Xdialog --title "Screenshot"\ --msgbox "Você terá 3 segundos depois do fechamento desta janela \n\ Para escolher o desktop, ou a janela à colocar no primeiro plano \n\ Para realizar sua captura de tela."\ 0 0 # Comando propriamente dito para a captura, com um tempo de latência de 3 segundos. import -pause 3 ${DIRETORIO}${NOME_IMAGEM}${COUNT}${EXT} # Criação de um clone da imagem inserindo um quadro e uma anotação exterior #+ Grossura do quadro / Cor do fundo / Cor do texto / tamanho do texto / Lugar #++ Label (aqui a data reformatada)/ Arquivo original / Arquivo de saída montage -frame 5 -mattecolor black -fill white -pointsize 14 -geometry +0+0 \ -label "$(date '+%A %e %B %Y %H:%M:%S')" ${DIRETORIO}${NOME_IMAGEM}${COUNT}${EXT} ${DIRETORIO}${NOME_IMAGEM}_annote${COUNT}${EXT}

Screenshots

  • Captura parcial

  • Captura parcial anotada

  • Captura parcial
  • Captura parcial anotada

Lins



Artigo original publicado por Jipicy
Tradução feita por Ana Spadari

Veja também

Publicado por ninha25. Última modificação: 1 de maio de 2011 às 07:32 por ninha25.
Este documento, intitulado 'Screenshot.sh', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.