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

Xiè*_*léi 8 clipboard compiz images ubuntu

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

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

小智 11

scrot + xclip

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

scrot '/tmp/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f'
Run Code Online (Sandbox Code Playgroud)

它将捕获整个屏幕并将图像复制到剪贴板。如果要捕获当前窗口,请使用-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'
Run Code Online (Sandbox Code Playgroud)

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

如果您只需要将已经存在的图像文件复制到剪贴板:

cat 2018-06-16-224938_670x730_scrot.png | xclip -selection clipboard -target image/png -i
Run Code Online (Sandbox Code Playgroud)

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


奖金

的解释/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.


che*_*kow 10

首先安装python和pygtk

sudo apt-get install python pygtk
Run Code Online (Sandbox Code Playgroud)

现在将以下脚本保存为 imgclip.py(参见/sf/ask/250029881/

#! /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]);
Run Code Online (Sandbox Code Playgroud)

要使用它:

python /path/to/imgclip.py filename.png
Run Code Online (Sandbox Code Playgroud)

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


小智 7

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

xclip -selection clipboard -target image/png -i
Run Code Online (Sandbox Code Playgroud)

compiz 中的示例

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


Jer*_*emy 4

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

编辑

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

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

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