web-dev-qa-db-ja.com

Linuxのコマンドラインからクリップボードに画像をコピーする方法は?

Gimpで画像をコピーして、OpenOfficeドキュメントに貼り付けることができます。

コマンドラインからそれを行う(画像をコピーまたは貼り付ける)方法は?

14
Vi.

見つかった ここ 、バイナリデータをxclipのファイルに貼り付けるための鍵は、クリップボードに何があるか メディアタイプ を伝えることです。 PNGの場合、次のことができます。

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

またはimage/jpegおよび.jpgJPEGの場合。

だから今私の~/Dropbox/.mybashrcエイリアス(clipboard2photo)を追加して、画像ファイルに簡単に貼り付けます(多分いつか Nautilusにあります )。

5
pabloab

Leo Alekseyevスクリプトが(一部のシステムで)時々機能しない理由は、この answer で同様の質問に説明されていると思います。ここで引用されている重要な部分:

他のほとんどのシステムとは異なる奇妙な点が1つあります。選択範囲(クリップボード)を所有しているプログラムがなくなると、選択範囲もなくなります。

Leoのスクリプトをpython Shellで実行すると、Shellが実行されている限り機能します。したがって、スクリプトが終了するとクリップボードのデータが失われると思います。答えは、私のために働いています:

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

_Viからの更新:完全を期すために、クリップボード->ファイルスクリプトを追加します。

#!/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", {})
7
wnm

Xclipを試してください。stdinから読み取られ、実行できるはずです。

xclip < image.jpg

画像をクリップボードにコピーします。

[〜#〜]未テスト[〜#〜]

2
Fredrik Pihl

次のpython/pygtkスクリプトがその役割を果たします。

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

(出典: http://ubuntuforums.org/showthread.php?t=1689889

これを使用するには、Sudo apt-get install python pygtk、上記のコードをスクリプトに貼り付けます、chmod +x実行可能にするために、あなたは行ってもいいはずです。

1
Leo Alekseyev