画像をPILでユーザに表示したいときに、ユーザがこの画像のどこかをクリックすると、def onmousedown(x、y)を呼び出すようにします。私はこの機能でいくつか余分なものをやります。 PILでこれをどうすればいいですか?Pythonでx、y座標を取り込むPIL
おかげで、
画像をPILでユーザに表示したいときに、ユーザがこの画像のどこかをクリックすると、def onmousedown(x、y)を呼び出すようにします。私はこの機能でいくつか余分なものをやります。 PILでこれをどうすればいいですか?Pythonでx、y座標を取り込むPIL
おかげで、
PILは一人でそれを行うことはありません - PILはありませんユーザーインターフェイスを持つ画像操作ライブラリである - それは、画像を表示する外部プログラムを開いていshow
方法を、持っていませんが、ありませんPythonプロセスと通信しないでください。
したがって、ユーザーが画像を操作できるようにするには、Pythonで使用するための統合ツールキットの1つを使用してGUIプログラムを構築する必要があります.Tkinter、GTK、Qt4 。 TkinterはWindows Pythonのインストールにあらかじめインストールされているので興味深いので、そのシステムのユーザーが簡単に利用できます。 Windowsユーザーは、他のツールキットを使用する場合は、プログラムを使用できるようにgtkまたはqtライブラリを個別にダウンロードしてインストールする必要があります。ここ
は、クリック可能な画像とTkinterのアプリケーションのミニマリストの例である:Ubuntuでここ
import Tkinter
from PIL import Image, ImageTk
from sys import argv
window = Tkinter.Tk(className="bla")
image = Image.open(argv[1] if len(argv) >=2 else "bla2.png")
canvas = Tkinter.Canvas(window, width=image.size[0], height=image.size[1])
canvas.pack()
image_tk = ImageTk.PhotoImage(image)
canvas.create_image(image.size[0]//2, image.size[1]//2, image=image_tk)
def callback(event):
print "clicked at: ", event.x, event.y
canvas.bind("<Button-1>", callback)
Tkinter.mainloop()
は別の関連のポストである
How to display picture and get mouse click coordinate on it
須藤APT-をインストールしますget install python python-tkアイドルpython-pmw python-imaging python-imaging-tk
それはすべて動作します。
@ jsbuenoのソリューションにresizeを追加し、インポートの問題を修正しました。
import Tkinter
from PIL import ImageDraw, Image, ImageTk
import sys
window = Tkinter.Tk(className="bla")
image = Image.open(sys.argv[1] if len(sys.argv) >=2 else "bla2.png")
image = image.resize((1000, 800), Image.ANTIALIAS)
canvas = Tkinter.Canvas(window, width=image.size[0], height=image.size[1])
canvas.pack()
image_tk = ImageTk.PhotoImage(image)
canvas.create_image(image.size[0]//2, image.size[1]//2, image=image_tk)
def callback(event):
print "clicked at: ", event.x, event.y
canvas.bind("<Button-1>", callback)
Tkinter.mainloop()
PILは単なるイメージングライブラリで、イメージを使ってイメージを作成できます。画像を表示し、クリックイベントをキャプチャすることは、ユーザインタフェースエンジンの仕事である。あなたはどのようなユーザーインターフェースを持っていますか? – Ski