Como copiar uma imagem para a área de transferência da linha de comando no linux?

14

Eu posso copiar a imagem no Gimp e colá-la no documento do OpenOffice.

Como fazer isso (copiar ou colar imagem) na linha de comando?

    
por Vi. 24.06.2011 / 23:50

4 respostas

5

Como foi encontrado aqui , a chave para colar dados binários para um arquivo com xclip é para dizer quais Tipos de mídia você tem na área de transferência. Para PNG, você pode:

xclip -selection clipboard -t image/png -o > "'date '+%Y-%m-%d_%T''.png"

Ou image/jpeg e .jpg para JPEG.

Agora, no meu ~/Dropbox/.mybashrc , adiciono um alias (clipboard2photo) para colar com facilidade o arquivo de imagem (talvez algum dia nós o teremos no Nautilus ).

    
por 22.10.2015 / 17:17
7

Acredito que a razão pela qual o script Leo Alekseyev não funciona às vezes (em alguns sistemas) é explicada nesta resposta para um similar questão. Parte importante citada aqui:

One oddity that is different from most other systems: if the program owning the selection (clipboard) goes away, so does the selection.

Quando eu executo o script de Leo no shell python, ele está funcionando, desde que o shell esteja em execução. Então eu acho que os dados da área de transferência são perdidos, quando o script é finalizado. A solução postada na resposta está funcionando para mim:

#!/usr/bin/env python
import gtk 
import sys

count = 0
def handle_owner_change(clipboard, event):
    global count
    print 'clipboard.owner-change(%r, %r)' % (clipboard, event)
    count += 1
    if count > 1:
       sys.exit(0)

image = gtk.gdk.pixbuf_new_from_file(sys.argv[1])
clipboard = gtk.clipboard_get()
clipboard.connect('owner-change', handle_owner_change)
clipboard.set_image(image)
clipboard.store()
gtk.main()

Atualizar de _Vi: para completar, adicionar o script de arquivo de área de transferência & & gt ;:

#!/usr/bin/python
import gtk, pygtk
pygtk.require('2.0')
import sys, os

clipboard = gtk.clipboard_get()
img = clipboard.wait_for_image()
img.save(sys.argv[1], "png", {})
    
por 02.12.2012 / 05:21
3

Experimente o xclip, ele lê de stdin e deve permitir que você faça

xclip < image.jpg

para copiar a imagem para a área de transferência.

UNTESTED

    
por 25.06.2011 / 00:11
1

O seguinte script python / pygtk faz o trabalho:

#!/usr/bin/python
import gtk, pygtk
pygtk.require('2.0')
import sys, os

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]);

(Fonte: link )

Para usar isso, sudo apt-get install python pygtk , cole o código acima em um script, chmod +x para tornar executável, e você deve estar pronto.

    
por 15.12.2011 / 09:27