xyzzyはemacsライクなバインディングで、昔からお気に入り。
xyzzyにpythonモードを導入するには:
http://hy-adversaria.blogspot.jp/2010/08/xyzzypython.html
↑
上記のブログ記事の通りで問題なくpy-modeが導入できました。
ちなみにsiteinit.lはxyzzy/site-lisp配下に置く。
PythonでGUIを開発する際、標準ライブラリのTkinterを用いることができる。
ただ、Tkinterは画像として
しかハンドリングできない。
そこで PIL: Python Imaging Library を用いると、その中のImageTk moduleを活用することができる。
PILは多くの画像フォーマットをサポートしている。
BMP/GIF/JPEG/PNG/TIFF etc.
画像処理も簡単に実行できる。以下、
http://www.pythonware.com/library/pil/handbook/image.htm より:
from PIL import Image
im = Image.open("bride.jpg")
im.rotate(45).show()
TkinterのPhotoImageは、
ImageTk.PhotoImage(image)
で作成可能。
以下、シンプル画像ビューアの例。ソースの大半は、以下のWebページと本:
によるものです。大変勉強になりました。
import Tkinter as Tk
import Image, ImageTk
import tkFileDialog as FD
class App(Tk.Frame):
def quit(self, event):
self.master.destroy()
def open(self, event):
filename = FD.askopenfilename()
if filename != "":
im = Image.open(filename)
if im.mode == "1": # bitmap image
self.image1 = ImageTk.BitmapImage(im, foreground="white")
else: # photo image
self.image1 = ImageTk.PhotoImage(im)
self.la.config(image=self.image1,
width=self.image1.width(), height=self.image1.height())
def init(self):
self.image1 = Tk.PhotoImage()
la = self.la = Tk.Label(self, image=self.image1, bg="#000000",
width=100, height=100)
la.bind("", self.open)
la.bind("", self.quit)
la.pack()
def __init__(self, master=None):
Tk.Frame.__init__(self, master)
self.master.title('PIL simple image viewer')
self.init(); self.pack()
if __name__ == '__main__':
app = App(); app.mainloop()