Como copiar imagem para área de transferência, para colar em outro aplicativo?

6

Eu quero definir a área de transferência para o arquivo abc.jpg , em formato de imagem, para que eu possa colá-la em gpaint , etc. Aplicativos X11, posso?

Eu habilitei o recurso Screen snapshot no gerenciador de janelas Compiz , e preciso fornecer uma linha de comando para copiar o arquivo de imagem de instantâneo para a área de transferência.

    
por Xiè Jìléi 14.10.2010 / 06:04

5 respostas

9

Primeiro, instale o python e o pygtk

sudo apt-get install python pygtk

Agora salve o seguinte script em algum lugar como imgclip.py (consulte o link )

#! /usr/bin/python

import pygtk
pygtk.require('2.0')
import gtk
import os
import sys

def copy_image(f):
    assert os.path.exists(f), "file does not exist"
    image = gtk.gdk.pixbuf_new_from_file(f)

    clipboard = gtk.clipboard_get()
    clipboard.set_image(image)
    clipboard.store()


copy_image(sys.argv[1]);

Para usá-lo:

python /path/to/imgclip.py filename.png

Nota: colado testado em gimp e xournal. Nota: isto é para o desktop gnome (daí o gtk). Aposto que tem algo similar para o kde

    
por 17.02.2011 / 18:14
4

Instale xclip (certifique-se de que a versão é 0.12 + svn84, porque 0.12 não é suficiente); em seguida, adicione esta linha à caixa no gerenciador de configurações do compiz:

xclip -selection clipboard -target image/png -i

Você poderá então colá-lo em qualquer outro aplicativo x

    
por 08.07.2016 / 21:18
3

Confira xclip . Ele permite que você mova texto ou arquivos para a área de transferência a partir da linha de comando.

EDITAR :

Existem aplicativos de captura de tela de linha de comando discutidos neste post: link incluindo scrot . Esta é a partir da página scrot man:

scrot  is  a  screen capture utility using the imlib2 library to aquire
       and save images.  scrot has a  few  options,  detailed  below.  Specify
       [file]  as  the  filename  to save the screenshot to.

Uma última opção é encontrar um aplicativo X que apenas receba uma captura de tela quando clicado (sem prompts, caixas de diálogo, etc.), atribua a uma combinação de teclas de atalho e use xdotool para simular essa tecla na linha de comando

    
por 14.10.2010 / 06:12
2

Eu desabilitarei o recurso de captura de tela do Compiz, apenas passe para System - > Preferences - > Keyboard Shortcuts (sob Desktop category) e liga Print Screen a Take a Screenshot

Agora,semprequevocêclicaremPrintScreen,umacópiaserátiradacomaopçãodecopiarparaaáreadetransferência,ouapenasparasalvaroarquivo.

    
por 14.10.2010 / 06:13
0

scrot + xclip

Você pode usar scrot com xclip para tirar uma captura de tela e copiá-la para a área de transferência.

scrot '/tmp/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f'

Ele irá capturar toda a sua tela e copiar a imagem para a área de transferência. Se você deseja capturar a janela atual, use -u flag. Para a seleção de uma área específica, você pode adicionar -s flag. Veja $ man scrot para mais opções.

Ele armazenará sua captura de tela no diretório /tmp . Você pode alterar esse diretório onde quer que ele seja armazenado. Os arquivos do diretório /tmp geralmente são excluídos após cada reinicialização. Se você quiser remover imediatamente o arquivo armazenado, faça algo como:

scrot -w '/tmp/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f && rm $f'

Como eu li em outros comentários, você precisa copiar uma imagem para a área de transferência. Espero que isso responda à sua pergunta.

Se você só precisa copiar um arquivo de imagem já existente para a área de transferência:

cat 2018-06-16-224938_670x730_scrot.png | xclip -selection clipboard -target image/png -i

Você pode definir atalhos de teclado / atalhos de teclado de acordo com seu ambiente de área de trabalho atual / gerenciador de janelas.

Bônus

Explicação de /tmp/%F_%T_$wx$h.png :

Está sendo usado como o nome do arquivo. Estes são chamados format specifiers . Eles são de dois tipos: começando com % ou $ .

%F     Equivalent to %Y-%m-%d (the ISO 8601 date format).

%T     The time in 24-hour notation (%H:%M:%S).

%F_%T_ imprimirá algo como: 2018-06-17_02:52:19_ , ou seja, seu timestamp atual. Você pode personalizar o formato conforme suas necessidades. Veja $ man strftime para mais ajuda.

$wx$h são parte dos especificadores internos do scrot.

$w   image width
$h   image height

Assim, o nome do arquivo final será parecido com 2018-06-17_02:52:19_1365x384.png .

    
por 17.06.2018 / 00:02