Python3用tkinter和PIL實現(xiàn)看圖工具
需求
想做看圖工具的,必然要支持jpg、png等常見格式,但tkinter是個純粹的GUI庫,不像GTK、QT那樣大而全,所以只支持gif和ppm兩種格式,局限很大,必須搭配圖像處理庫,才能實現(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-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()
最終顯示效果

相關(guān)文章
python+lunarcalendar庫實現(xiàn)使用農(nóng)歷日期
這篇文章主要為大家詳細介紹了python如何通過lunarcalendar庫實現(xiàn)使用農(nóng)歷日期,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下2024-11-11
淺談python中的getattr函數(shù) hasattr函數(shù)
下面小編就為大家?guī)硪黄獪\談python中的getattr函數(shù) hasattr函數(shù)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06
利用python腳本提取Abaqus場輸出數(shù)據(jù)的代碼
這篇文章主要介紹了利用python腳本提取Abaqus場輸出數(shù)據(jù),利用python腳本對Abaqus進行數(shù)據(jù)提取時,要對python腳本做前步的導(dǎo)入處理,本文通過實例代碼詳細講解需要的朋友可以參考下2022-11-11
pycharm配置安裝autopep8自動規(guī)范代碼的實現(xiàn)
這篇文章主要介紹了pycharm配置安裝autopep8自動規(guī)范代碼的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python使用pyyaml模塊處理yaml數(shù)據(jù)
這篇文章主要介紹了Python使用pyyaml模塊處理yaml數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
Ubuntu 下 vim 搭建python 環(huán)境 配置
這篇文章主要介紹了Ubuntu 下 vim 搭建python環(huán)境配置,需要的朋友可以參考下2017-06-06
Python網(wǎng)絡(luò)爬蟲與信息提取(實例講解)
下面小編就為大家?guī)硪黄狿ython網(wǎng)絡(luò)爬蟲與信息提取(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

