2011-07-11 13 views
1

のpythonを使用して、1は画像を読み込むことができます。そして、1は次のようにklipperに書き込むことができますpythonからklipperに画像を挿入するには?

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

を:

import dbus 
bus = dbus.SessionBus() 
proxy = bus.get_object("org.kde.klipper","/klipper") 
iface = dbus.Interface(proxy,"org.kde.klipper.klipper") 
iface.setClipboardContents("text") 

しかし、私は、私はちょうど開いた画像の書き込みしようとする - それを

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

私の質問は次のとおりです。「画像をクリソッパーでPythonに載せる方法は?」

答えて

0

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 

これも讲义1コースののpythonで行うことができるが、しかし、私は、システムコールを行うために、画像に読んでいない - のpythonを使用する必要はありません。

説明するには、〜/ Downloadsに画像をダウンロードしたとします。次に、このスクリプトを実行すると、そこに最新のファイルがあり、gwenviewで開き、クリップボードにコピーして(!)、gwenviewを閉じます。

私は正しく動作すると思います。他のgwenは動作していない可能性があります。そして、あなたがそれを使いたい場合は、スクリプトをホットキーにバインドすることをお勧めします。

キーボード駆動のウェブブラウザ(ConkerorまたはPentadactylなど)に切り替える必要があるため、私はそのようなスクリプトを探していた理由は、画像をすばやく保存できるためです.odtファイル)。

このスクリプトをさらにデーモンにすることができます。これはダウンロードディレクトリを監視します。しかし、今私は画像をダウンロードし、自動的にクリップボードに入れるスクリプトを書く - my next questionを参照してください。

あなたが必要な場合がありますqdbusコマンドを見つけるための方法は - 例えば、

qdbusviewer 

を開き、必要なアプリ、あなたが必要とする、コマンドを見つけ、その後、それが行われています同様に呼び出すようにすることです画面をロックする:

qdbus org.kde.krunner /ScreenSaver Lock 
0

イメージは未処理のPythonイメージングライブラリオブジェクトです。あなたはこの形式に画像をシリアライズする方法)

2)

1を見つける必要があります)どのような入力フォーマットの画像のKlipperのexceptsで(テキストではありません?。あなたはPythonイメージオブジェクトを渡すのではなく、おそらくKlipperにデータ(PNGファイルデータ)を保存します。

関連する問題