![将图像从命令行复制到剪贴板](https://linux22.com/image/20498/%E5%B0%86%E5%9B%BE%E5%83%8F%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%A4%8D%E5%88%B6%E5%88%B0%E5%89%AA%E8%B4%B4%E6%9D%BF.png)
bash 有没有办法将图片复制到剪贴板?
例如,如果有一张图片,mypic.png
我想要一个类似的命令clipcopy mypic.png
,这样我就可以转到 inkscape 并随后粘贴它。
答案1
您可以使用复制Q为了这。来自网站:
具有高级功能的剪贴板管理器
- CopyQ 是具有可搜索和可编辑历史记录的剪贴板管理器。
- 支持Linux和Windows。
- 对 OS X 10.9+ 的实验性支持。
- 存储文本、HTML、图像和任何其他自定义格式。
- 高级命令行界面和脚本编写。
复制图像(需要指定 MIME 类型):
copyq write image/png - < file.png && copyq select 0
复制数据文件(需要指明MIME类型):
copyq write application/pdf - < file.pdf && copyq select 0
检查他们的维基以了解更多信息文档和使用示例。
也可以看看:
答案2
请参阅此处的答案:https://askubuntu.com/a/759660/187689
xclip -selection clipboard -t image/png -i example.png
答案3
这个Python脚本经过切什尔库夫声称做你想做的事。
#! /usr/bin/python
import pygtk
pygtk.require('2.0')
import gtk
import os
import sys
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]);
答案4
我已经编辑过@don_crissti的回答允许管道输入:
#!/usr/bin/env python
import sys
from gi.repository import Gtk, Gdk, GdkPixbuf
def store(pixbuf):
clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
clipboard.set_image(pixbuf)
clipboard.store()
def copy_image(f):
image = Gtk.Image.new_from_file(f)
if image.get_storage_type() == Gtk.ImageType.PIXBUF:
pixbuf = image.get_pixbuf()
store(pixbuf)
else:
print("Copying failed")
def copy_pixbuf(data):
loader = GdkPixbuf.PixbufLoader()
loader.write(data)
loader.close()
pixbuf = loader.get_pixbuf()
store(pixbuf)
if sys.stdin.isatty():
if len(sys.argv) != 2:
print("Usage: image-to-clipboard.py image")
else:
f = sys.argv[1]
copy_image(f);
else:
data = sys.stdin.read()
copy_pixbuf(data)