Python3下用tkinter和PIL实现简单的显示图片
2018-03-20 21:30
961 查看
想做看图工具的,必然要支持jpg、png等常见格式,但tkinter是个纯粹的GUI库,不像GTK、QT那样大而全,所以只支持gif和ppm两种格式,局限很大,必须搭配图像处理库,才能实现基本的看图功能
这两个库在python3下跟python2有一定差异:
tkinter首字母变成小写
PIL官方还不支持Python3,但有个fork叫Pillow,可以替代官方并且接口保持不变,需要pip install Pillow安装
技术原理
那么怎么让PIL读取jpg文件生成的内存对象被tkinter处理呢?PIL的开发人员很贴心的提供了一个PhotoImage类,跟tkinter包里的同名类接口兼容,所以可以直接将PIL生成的PhotoImage对象赋给tkinter中能接收PhotoImage入参的所有控件(比如Label、Canvas等)
代码示例
4000
在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()
4000
相关文章推荐
- Python3下用tkinter和PIL实现简单的看图工具
- python通过Tkinter库实现的一个简单的文本编辑器代码
- python3使用tkinter实现ui界面简单实例
- python之利用PIL库实现页面的图片验证码及缩略图 推荐
- 简单方法实现webbrowser不显示图片flash的功能。
- win 7 下 PIL python Image模块 show函数不能正常显示图片
- Java之简单的图片动态显示(实现类似GIF动画效果)
- 基于jquery单击图片弹出显示的简单实现
- python的tkinter布局之简单的聊天窗口实现方法
- python TKinter 实现显示日期时间和秒表的功能
- jquery简单图片切换显示效果实现方法
- 在Python3下使用tornado和SQLAlchemy实现一个简单的MVC网站
- 简单css实现图片和文字的居中显示,IE下有效
- python的tkinter布局之简单的聊天窗口实现方法
- 使用volley实现简单的操作,json传输,网络图片显示
- python处理图片之PIL模块简单使用
- 利用Python的PIL工具包实现图片比对
- Java之简单的图片动态显示(实现类似GIF动画结果)
- Android中简单实现从网络下在图片显示并保存在本地
- Python的PIL库实现验证码图片