![如何在 Linux 中从命令行将图片复制到剪贴板?](https://linux22.com/image/1280771/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%AD%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B0%86%E5%9B%BE%E7%89%87%E5%A4%8D%E5%88%B6%E5%88%B0%E5%89%AA%E8%B4%B4%E6%9D%BF%EF%BC%9F.png)
我可以在 Gimp 中复制图像并将其粘贴到 OpenOffice 文档中。
如何从命令行执行此操作(复制或粘贴图像)?
答案1
发现这里,将二进制数据粘贴到文件的关键xclip
是告诉媒体类型剪贴板上有。对于 PNG,您可以:
xclip -selection clipboard -t image/png -o > "`date '+%Y-%m-%d_%T'`.png"
或者image/jpeg
和.jpg
JPEG。
所以现在~/Dropbox/.mybashrc
我添加了一个别名(clipboard2photo)以便轻松粘贴到图像文件(也许有一天我们将在 Nautilus 上发布)。
答案2
我相信 Leo Alekseyev 脚本有时(在某些系统上)不起作用的原因可以在此解释回答类似问题。此处引用重要部分:
与大多数其他系统不同的是:如果拥有选择(剪贴板)的程序消失,那么选择也会消失。
当我在 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()
从 _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", {})
答案3
以下 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
使其可执行,然后就可以开始了。