您现在的位置是:门户> 编程语言> Python

Python3用tkinter和PIL实现看图工具
2021-06-19 33人围观 0条评论
简介这篇文章给大家分享了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()

    最终显示效果

分享:

文章评论

    • wxpython 学习笔记 第一天
    • python文本数据处理学习笔记详解