如何将图像复制到剪贴板,粘贴到另一个应用程序?


6

我想将剪贴板设置为文件abc.jpg,图像格式,所以我可以将它粘贴到gpaintX11应用程序等等,我可以吗?

我在CompizWindows管理器中启用了屏幕快照功能,我需要命令行将快照映像文件复制到剪贴板。

Answers:


9

首先,安装python和pygtk

sudo apt-get install python pygtk

现在将以下脚本保存为imgclip.py(请参阅https://stackoverflow.com/questions/3571855/pasting-image-to-clipboard-in-python-in-linux

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

要使用它:

python /path/to/imgclip.py filename.png

注意:在gimp和xournal中测试粘贴。注意:这适用于gnome桌面(因此是gtk)。我打赌kde有类似的东西


5

安装xclip(确保版本是0.12 + svn84,因为0.12是不够的); 然后,将此行添加到compiz设置管理器中的框中:

xclip -selection clipboard -target image/png -i

compiz中的示例

然后,您应该能够将其粘贴到任何其他x应用程序


3

退房xclip。它允许您从命令行将文本或文件移动到剪贴板。

编辑

这篇文章中讨论了命令行截图应用程序:http//www.linux.com/archive/feed/57772包括scrot。这是来自scrot手册页:

scrot是一个使用imlib2库获取的屏幕捕获实用程序
       并保存图像。scrot有几个选项,详情如下。指定
       [file]作为保存屏幕截图的文件名。

最后一个选项是找到一个X应用程序,它只是在点击时截取屏幕截图(没有提示,对话框等),将其分配给热键组合并用于xdotool从命令行模拟该按键?


@OP,你真的需要一个命令行工具,还是只是想把截图放到剪贴板?还有更简单的方法去
杰里米·

是的,我需要一个命令行工具。
XièJìléi2010年

不幸的是,xclipxsel没有与图像工作,他们只显示文本内容合作。
XièJìléi2010年

对了,我的坏,我没有尝试粘贴到一个图形程序,我只尝试xclip < image.jpgxclip -o > image2.jpg其中的作品,但也没用;(
杰里米·

我测试了scrot,它很好地将屏幕截图直接输出到文件,但它无法将其放入剪贴板:/
Jeremy

2

我将禁用Compiz的截图功能,只需转到System- > Preferences- > Keyboard Shortcuts(在Desktop类别下)并绑定Print ScreenTake a Screenshot

在此输入图像描述


现在每当你点击PrintScreen一个sreencapture时,都会选择复制到剪贴板,或者只是为了保存文件。

在此输入图像描述


不,我喜欢屏幕截图功能来自Compiz
XièJìléi2010年

一个小问题,你如何在SU中制作“打印屏幕”按钮?
XièJìléi2010年

2
@谢继雷哦,只需把所需的按钮放在<kbd>&</ kbd>之间
Sathyajith Bhat

1

scrot + xclip

您可以使用scrotwith xclip来截取屏幕截图并将其复制到剪贴板。

scrot '/tmp/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f'

它将捕获整个屏幕并将图像复制到剪贴板。如果要捕获当前窗口,请使用-u标志。要选择特定区域,您可以添加-s标记。有关$ man scrot更多选项,请参阅

它会将您的屏幕截图存储在/tmp目录中。您可以在任何需要存储的目录中更改该目录。/tmp每次重启后,目录中的文件通常会被删除。如果要立即删除存储的文件,请执行以下操作:

scrot -w '/tmp/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f && rm $f'

正如我在其他评论中所读到的,您需要将屏幕截图复制到剪贴板。我希望这回答了你的问题。

如果您只需要将现有的图像文件复制到剪贴板:

cat 2018-06-16-224938_670x730_scrot.png | xclip -selection clipboard -target image/png -i

您可以根据当前的桌面环境/窗口管理器设置键盘快捷键/键绑定。


奖金

说明/tmp/%F_%T_$wx$h.png

它被用作文件名。这些被称为format specifiers。它们有两种类型:以%或开头$

%F相当于%Y-%m-%d(ISO 8601日期格式)。

%T 24小时表示法的时间(%H:%M:%S)。

%F_%T_将打印出类似的内容:2018-06-17_02:52:19_即您当前的时间戳。您可以根据自己的要求自定义格式。请参阅$ man strftime更多帮助。

$wx$h 是scrot内部说明符的一部分。

$ w图像宽度
$ h图像高度

所以最终的文件名看起来像2018-06-17_02:52:19_1365x384.png

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.