如何从Linux中的命令行将图片复制到剪贴板?

Vi.*_*Vi. 15 linux clipboard pictures

我可以在 Gimp 中复制图像并将其粘贴到 OpenOffice 文档中。

如何从命令行执行(复制或粘贴图像)?

小智 7

我相信Leo Alekseyev 脚本有时(在某些系统上)不起作用的原因在this answer to a similar question中得到了解释。这里引用的重要部分:

与大多数其他系统不同的一个奇怪之处是:如果拥有选择(剪贴板)的程序消失,选择也会消失。

当我在 python shell 中运行 Leo 的脚本时,只要 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()
Run Code Online (Sandbox Code Playgroud)

从 _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", {})
Run Code Online (Sandbox Code Playgroud)


pab*_*oab 6

如此处所示,将二进制数据粘贴到文件中的关键xclip是告诉您剪贴板上的媒体类型是什么。对于 PNG,您可以:

xclip -selection clipboard -t image/png -o > "`date '+%Y-%m-%d_%T'`.png"
Run Code Online (Sandbox Code Playgroud)

或者image/jpeg.jpgJPEG。

所以现在在我的~/Dropbox/.mybashrc我添加一个别名 (clipboard2photo) 来轻松粘贴到图像文件(也许有一天我们会在 Nautilus 上使用它)。