国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3用tkinter和PIL實(shí)現(xiàn)看圖工具

2020-02-15 21:58:09
字體:
供稿:網(wǎng)友

需求

想做看圖工具的,必然要支持jpg、png等常見格式,但tkinter是個純粹的GUI庫,不像GTK、QT那樣大而全,所以只支持gif和ppm兩種格式,局限很大,必須搭配圖像處理庫,才能實(shí)現(xiàn)基本的看圖功能
在python生態(tài)系統(tǒng)里,最常用的圖像處理庫是PIL

Python3下庫的安裝

這兩個庫在python3下跟python2有一定差異:
tkinter首字母變成小寫
PIL官方還不支持Python3,但有個fork叫Pillow,可以替代官方并且接口保持不變,需要pip install Pillow安裝

技術(shù)原理

那么怎么讓PIL讀取jpg文件生成的內(nèi)存對象被tkinter處理呢?PIL的開發(fā)人員很貼心的提供了一個PhotoImage類,跟tkinter包里的同名類接口兼容,所以可以直接將PIL生成的PhotoImage對象賦給tkinter中能接收PhotoImage入?yún)⒌乃锌丶ū热鏛abel、Canvas等)

代碼示例

#encoding=utf-8import tkinter as tkfrom PIL import Image, ImageTkclass 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):    passif __name__ == '__main__':  root = tk.Tk()  app = App(root)  root.mainloop()

最終顯示效果

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 如东县| 莱阳市| 康定县| 西青区| 武山县| 莱芜市| 阿坝| 赞皇县| 古交市| 云霄县| 金塔县| 中宁县| 罗甸县| 杭锦后旗| 亳州市| 镇赉县| 于田县| 五河县| 武陟县| 乌兰浩特市| 米脂县| 漳平市| 星子县| 罗城| 邵阳县| 金华市| 思南县| 墨江| 临武县| 丰原市| 邢台市| 颍上县| 蛟河市| 怀宁县| 阿勒泰市| 都匀市| 峨眉山市| 临汾市| 东光县| 全州县| 天柱县|