python中self image_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()
最终显示效果
python中self image_Python3用tkinter和PIL实现看图工具相关推荐
- Python3下用tkinter和PIL实现简单的看图工具
需求 想做看图工具的,必然要支持jpg.png等常见格式,但tkinter是个纯粹的GUI库,不像GTK.QT那样大而全,所以只支持gif和ppm两种格式,局限很大,必须搭配图像处理库,才能实现基本的 ...
- python中文昵称-官方出品 Python 中文文档!拜托,别再说看不懂了
点击" 开发者技术前线 ",选择"星标�" 在看|星标|留言, 真爱 回复"666",获取一份技术人专属大礼包 作者:机器之心 参与:思源 ...
- class括号里的object_听说你在找python中class的定义及使用教程?看这里就对了
这篇文章主要介绍了python中class的定义及使用,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下. 类的定义 class classname[(父类名)]: ...
- Python中if __name__=='__main__': 理解与总结(看这篇就够了,一文扫清疑惑!)
前言 在Python当中,如果代码写得规范一些,通常会写上一句if '__name__'=='__main__:'作为程序的入口,但似乎没有这么一句代码,程序也能正常运行.这句代码多余吗?原理又在哪里 ...
- python中oserror捕获_Python assert异常处理(一看即懂)
Python 还支持断言语法.在一套程序完成之前,编程者并不知道程序可能会在哪里报错,或是触发何种条件的报错,因此使用断言语法可以有效地做好异常检测,并适时触发和抛出异常. Python 中使用 as ...
- CAD中怎么设置CAD标注样式?CAD看图软件教程
在进行CAD制图的过程中,有些时候会需要对CAD图纸中的图形进行标注,针对一样的图形可以选择多种不同的CAD标注样式.接下来的CAD教程就让小编来给大家介绍一下浩辰CAD看图王电脑版中CAD标注样式的 ...
- python图片识别论文_Python识别文字,实现看图说话 | CSDN博文精选
原标题:Python识别文字,实现看图说话 | CSDN博文精选 作者 | 张小腿 来源 | CSDN博客 现在写文件很多网站都不让复制了,所以每次都是截图然后发到QQ上然后用手机QQ的文字识别再发回 ...
- 四十八、Python中的GUI布局tkinter
@Author:Runsen 现在极少有人会用上tkinter了,所以真正研究的人也就更少了,本来不想更新tkinter.看到很多人在学tkinter,其实用Python做布局,没有人这么干.但还是更 ...
- pythonguitkinter组件_四十八、Python中的GUI布局tkinter
「@Author:Runsen」 现在极少有人会用上tkinter了,所以真正研究的人也就更少了,本来不想更新tkinter.看到很多人在学tkinter,其实用Python做布局,没有人这么干.但还 ...
最新文章
- c++栈和java栈的区别
- Tomcat部署的三种方式
- Linux下的 FTP
- php system 255,GitHub - dwg255/OA-SYS: OA办公系统开源项目
- Git客户端TortoiseGit下载、安装及汉化
- matplotlib 设置标注方向_Matplotlib绘制带主题及聚类类标的散点图
- 解决pip2安装不成功的问题
- 测试你的样子长得美与丑「超准的测试」
- 开发环境eclipse for Mac 下的常用快捷键汇总(基本参照Win系,将Ctrl换为Command)
- 解决font-weight:600在安卓机不生效的方法
- Oracle Goldengate 安装配置
- LBP及纹理表达 转自http://blog.sina.com.cn/s/blog_ba9d7d9901018k4v.html
- Java冒泡排序代码实现
- CodeSniffer使用教程
- 通过wal文件查看lsn和txid,lsn和txid对应关系
- xmind设计测试用例以及与云效平台的交互
- Fiddler下载安装及手机抓包--小白版
- 涉及数字的英语表示——几点钟、年月日、世纪、年代、年龄
- 弘辽科技:拼多多活动布局三大招!
- 设计师们书签里的设计素材精品网站