No Lubuntu, você pode fazer exatamente o que você quer: faça uma captura de tela a partir da linha de comando com o comando:
scrot_extended 100 100 400 400
usando o script abaixo.
Os quatro argumentos são <x>, <y>, <width>, <height>
.
Eu não tive a chance (ainda) de testá-lo em Lubuntu 12.04
, mas parece improvável que não funcione; Ele usa python 2
e ferramentas básicas de linha de comando que já existem há muito tempo.
Explicação
O script:
- tira uma captura de tela com
scrot
- salva em um arquivo temporário
- usando
imagemagick
, cria uma nova imagem, cortando a captura de tela, com os argumentos em que você executou o script com - a imagem é salva em um diretório como um arquivo numerado, para evitar sobrescrever
Como usar
-
O script usa
scrot
eimagemagick
.scrot
deve estar no seu sistema. Para instalar o imagemagick:sudo apt-get install imagemagick
-
Copie o script em um arquivo vazio
- Por padrão, as imagens são salvas em
~/scrot_images
, nomeadas:outputfile_1.png
,outputfile_2.png
etc. Altere-o se quiser, conforme marcado no script. Observe que, se você alterar o diretório, terá que usar o caminho completo . - Salve o arquivo em
~/bin
(crie o diretório, se necessário) comoscrot_extended
(sem extensão) e torne-o executável . -
Faça o logout e volte a usar sua captura de tela com o comando:
scrot_extended <x> <y> <width> <height>
Exemplo:
scrot_extended 100 100 400 400
outputfile:
O script
#!/usr/bin/env python
import subprocess
import os
import sys
# setting default directories / filenames
home = os.environ["HOME"]
temp = home+"/"+".scrot_images"
img_in = temp+"/in.png"
# if you prefer, you can change the two line below:
output_directory = home+"/"+"scrot_images" # output directory
filename = "outputfile" # filename
# creating needed directories
for dr in [temp, output_directory]:
if not os.path.exists(dr):
os.mkdir(dr)
# creating filename (-number) to prevent overwriting previous shots
n = 1
while True:
img_out = output_directory+"/"+filename+"_"+str(n)+".png"
if os.path.exists(img_out):
n = n+1
else:
break
# reading arguments,arranging commands to perform
coords = sys.argv[1:5]
cmd1 = ["scrot", img_in]
cmd2 = ["convert", img_in, "-crop", coords[2]+"x"+coords[3]+"+"+coords[0]+"+"+coords[1], "+repage", img_out]
# Take screnshot, crop image
for cmd in [cmd1, cmd2]:
subprocess.call(cmd)