问题来了——
我正在编写一个程序,它将遍历一系列图像操作——既影响整个图像,也影响图像的一部分。我需要向用户(我自己)演示这些更改,以便我可以看到我的操作发生了什么问题。
我最初尝试使用 PIL 和 Tkinter 来执行此操作 - 但我什至无法将图像加载到 GUI 中 - 这是通过许多谷歌搜索从网络角落形成的一些代码:
from Tkinter import *
import Image, ImageDraw, ImageTk
import time
class Test(Frame):
def __init__(self):
Frame.__init__(self)
self.c = Canvas(self, width=574, height=431, bg="red")
self.c.pack()
Button(self, text="Process", command=self.procImg).pack()
Button(self, text="Quit", command=self.quit).pack()
def procImg(self):
t = time.time()
self.flashImg = Image.open("./in_img/resize.bmp")
#self.flashImg = flashImg.resize((574, 431))
self.flashImg = self.flashImg.convert("L")
#self.photo = ImageTk.BitmapImage(flashImg)
self.c.photo = ImageTk.PhotoImage(self.flashImg)
self.c.create_image(574, 431, anchor=NW, image=self.c.photo)
self.c.create_rectangle(50, 50, 100, 100, fill="blue")
self.update()
print time.time()-t
t = Test()
t.pack()
t.mainloop()
所以上面的代码很糟糕,我知道——但我想发布一些东西来证明我至少一直在做这件事。
任何人都可以向我建议一种使用 Python 解决这个问题的新方法吗?我宁愿不学习另一种语言——我是 Tkinter 库的新手,所以如果有其他东西更适合这个,我学习新库没有问题。
此外,仅供参考,“resize.bmp”图像是来自数码相机的调整大小的 .JPG。我也试过了,但没用——我真的需要找到一种方法来将位图从内存闪存到 GUI 中的屏幕,这样我就可以在处理过程中调整参数。
谢谢你的帮助!