Python3用tkinter和PIL实现看图工具-创新互联
需求

想做看图工具的,必然要支持jpg、png等常见格式,但tkinter是个纯粹的GUI库,不像GTK、QT那样大而全,所以只支持gif和ppm两种格式,局限很大,必须搭配图像处理库,才能实现基本的看图功能
在python生态系统里,最常用的图像处理库是PIL
Python3下库的安装
这两个库在python3下跟python2有一定差异:
tkinter首字母变成小写
PIL官方还不支持Python3,但有个fork叫Pillow,可以替代官方并且接口保持不变,需要pip install Pillow安装
技术原理
那么怎么让PIL读取jpg文件生成的内存对象被tkinter处理呢?PIL的开发人员很贴心的提供了一个PhotoImage类,跟tkinter包里的同名类接口兼容,所以可以直接将PIL生成的PhotoImage对象赋给tkinter中能接收PhotoImage入参的所有控件(比如Label、Canvas等)
代码示例
#encoding=utf-8
import tkinter as tk
from PIL import Image, ImageTk
class App(tk.Frame):
def __init__(self, master=None):
super().__init__(master, width=400, height=300)
self.pack()
self.pilImage = Image.open("CSDN.png")
self.tkImage = ImageTk.PhotoImage(image=self.pilImage)
self.label = tk.Label(self, image=self.tkImage)
self.label.pack()
def processEvent(self, event):
pass
if __name__ == '__main__':
root = tk.Tk()
app = App(root)
root.mainloop()另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享名称:Python3用tkinter和PIL实现看图工具-创新互联
文章分享:http://www.jxjierui.cn/article/cosoid.html


咨询
建站咨询
