阴囊 + xclip

阴囊 + xclip

我想将剪贴板设置为abc.jpg图像格式的文件,这样我就可以将其粘贴到gpaint等 X11 应用程序,可以吗?

我已经在窗口管理器中启用了屏幕快照功能Compiz,并且我需要提供命令行将快照图像文件复制到剪贴板。

答案1

阴囊 + xclip

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

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

答案2

首先,安装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 也有类似的东西

答案3

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

xclip -selection clipboard -target image/png -i

compiz 中的示例

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

答案4

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

在此处输入图片描述


现在,无论何时您点击PrintScreen屏幕截图,都可以选择复制到剪贴板,或者只是保存文件。

在此处输入图片描述

相关内容