Wie kann ich ein Bild von der Kommandozeile in Linux in die Zwischenablage kopieren?

5390
Vi.

Ich kann ein Bild in Gimp kopieren und in das OpenOffice-Dokument einfügen.

Wie mache ich es (Bild kopieren oder einfügen) von der Kommandozeile aus?

14
Was bedeutet früheres "Einfügen aus der Zwischenablage von der Kommandozeile"? Wahrscheinlich das gleiche, aber nur für die Kopie: http://unix.stackexchange.com/questions/30093/copy-image-from-command-line-to-clipboard Ciro Santilli 新疆改造中心 六四事件 法轮功 vor 9 Jahren 0
Allgemeinere Frage zu einem beliebigen Dateityp: http://superuser.com/questions/796376/is-is-possible-to-copy-binary-data-containing-anul-character-to-the-x-clipboard Ciro Santilli 新疆改造中心 六四事件 法轮功 vor 9 Jahren 0

4 Antworten auf die Frage

7
wnm

Ich glaube, dass der Grund, warum das Skript von Leo Alekseyev manchmal (auf einigen Systemen) nicht funktioniert, in dieser Antwort auf eine ähnliche Frage erklärt wird. Wichtiger Teil hier zitiert:

Eine Besonderheit, die sich von den meisten anderen Systemen unterscheidet: Wenn das Programm, das die Auswahl (Zwischenablage) besitzt, verschwindet, wird auch die Auswahl deaktiviert.

Wenn ich Leos Skript in einer Python-Shell laufe, funktioniert es, solange die Shell läuft. Ich denke, die Daten aus der Zwischenablage gehen verloren, wenn das Skript beendet wird. Die in der Antwort veröffentlichte Lösung funktioniert für mich:

#!/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() 

Update von _Vi: Der Vollständigkeit halber fügen Sie das Clipboard-> Dateiskript hinzu:

#!/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", {}) 
Es ist ein bisschen nervig, wie man es manuell beenden muss, aber zumindest funktioniert es :). Vielen Dank! crazy2be vor 9 Jahren 0
5
pabloab

Wie hier zu finden ist der Schlüssel zum Einfügen von Binärdaten in eine Datei xclipdas Bestimmen, welche Medientypen Sie in der Zwischenablage haben. Für PNG können Sie:

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

Oder image/jpegund .jpgfür JPEG.

Nun ~/Dropbox/.mybashrcfüge ich auf meiner Seite ein Alias ​​(clipboard2photo) hinzu, um es einfach in die Bilddatei einzufügen (vielleicht haben wir es eines Tages auf Nautilus ).

Wie im ersten Link erwähnt: HINWEIS: Einige Untersuchungen zeigen, dass Sie Xclip aus der SVN-Revision 81 (ab April 2010) oder später benötigen, um die erforderliche Option -t zu erhalten. Oder wenden Sie sich [die Patches] (http://sourceforge.net/p/xclip/patches/4/) selbst an. i336_ vor 7 Jahren 0
3
Fredrik Pihl

Versuchen Sie es mit xclip, es liest von stdin und sollte es Ihnen erlauben

xclip < image.jpg 

um das Bild in die Zwischenablage zu kopieren.

UNGETESTET

-1, ich möchte nicht "??? ## JFIF ### ..." in meinem Dokument. Vi. vor 12 Jahren 1
Eigentlich habe ich das oft benutzt und seit etwa letztem Jahr funktioniert es nicht mehr. Noch auf der Suche nach einer Lösung. Drasill vor 12 Jahren 0
Funktioniert hier nicht ... xclip ist nur Text auf meinem Ubuntu 12.04 cmc vor 11 Jahren 5
1
Leo Alekseyev

Das folgende python / pygtk-Skript erledigt die Aufgabe:

#!/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]); 

(Quelle: http://ubuntuforums.org/showthread.php?t=1689889 )

Um dies zu verwenden sudo apt-get install python pygtk, fügen Sie den obigen Code in ein Skript ein, chmod +xum die ausführbare Datei zu erstellen.

Kleines png-Bild mit diesem Skript kopiert. Es kann weder in OpenOffice noch in Gimp eingefügt werden ("In der Zwischenablage liegen keine Bilddaten zum Einfügen"). Arbeite nicht Nachdem Sie das aktuelle Bild in Gimp kopiert und dieses Skript verwendet haben, wird der Puffer in den vorherigen Text zurückgesetzt. Vi. vor 12 Jahren 0
Ich habe es gerade ausprobiert: `wget http://upload.wikimedia.org/wikipedia/commons/d/d9/Test.png && ./test.py Test.png`, wobei test.py genau das ist, was hier eingefügt wird. Pasten gut in Gimp. Leo Alekseyev vor 12 Jahren 0
Versucht mit Test.png. Msgstr "In der Zwischenablage befinden sich keine Bilddaten zum Einfügen". Kommt es darauf an, Gnome auszuführen? Wie kann ich das debuggen? Ich kann ein Bild erfolgreich in Gimp kopieren und in Openoffice einfügen, so dass das Kopieren im Allgemeinen funktioniert. Vi. vor 12 Jahren 0
E: Paket pygtk kann nicht gefunden werden qed vor 10 Jahren 0