如何从python到klipper的图像?

2024-10-02 18:16:36 发布

您现在位置:Python中文网/ 问答频道 /正文

使用python,可以在图像中读取:

from PIL import Image, ImageTk
image = Image.open("test.jpg")

然后你可以用以下方式给飞利浦写信:

^{pr2}$

但当我试着写一张我刚打开的图片时,它说它不能接受它:

iface.setClipboardContents(image)
TypeError: Expected a string or unicode object

所以我的问题是:“如何用python把图像放到klipper上?”在


Tags: fromtest图像imageimportpil方式图片
2条回答

Image是一个原始的Python图像库对象。你需要找出答案

1)Klipper对图像(不是文本)的输入格式是什么在

2)如何将图像序列化为此格式。您不传递Python图像对象,但可能将保存的数据(PNG文件数据)传递给Klipper。在

找到了一些解决方案-不是用python而是用bash,它不适用于远程图片-只适用于本地图片(因为gwenview)。下面是bash脚本:

#!/bin/bash
cd /home/boris/Downloads/
name=`ls -t1 | head -1`
gwenview $name &
sleep 3
id=`ps -e | grep gwenview | awk '{print $1}'`
qdbus org.kde.gwenview-$id /gwenview/MainWindow_1/actions/edit_copy trigger
sleep 3
kill $id

这也可以用cource的python来实现,但是由于我进行了系统调用,而不是在图片中读取,所以没有必要使用python。在

为了解释这一点,假设您将一个图像下载到~/Downloads。然后,如果你使用这个脚本,它会在那里找到最新的文件,用gEnview打开它,将它复制到剪贴板(!),然后关闭gEnview。在

我认为要正常工作-没有其他gwen可以运行。如果你想使用它,最好将脚本绑定到一个热键上。在

我之所以要寻找这样一个脚本-是因为我想切换到键盘驱动的webbrowser(例如Conkeror或{a2})-它允许快速保存图像-而我主要需要将其粘贴到一些.odt文件中)。在

这个脚本可以进一步成为一个守护进程-它将监视下载目录。但现在我要写一个脚本,它将下载图像,并自动放入剪贴板-请参见my next question。在

找到您可能需要的qdbus命令的方法是打开

^{pr2}$

找到你需要的应用程序,然后找到你需要的命令,然后打电话给你,就像它所做的那样,例如锁定屏幕:

qdbus org.kde.krunner /ScreenSaver Lock

相关问题 更多 >