中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3用tkinter和PIL實現看圖工具

發布時間:2020-08-22 15:08:51 來源:腳本之家 閱讀:215 作者:六個九十度 欄目:開發技術

需求

想做看圖工具的,必然要支持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()

最終顯示效果

Python3用tkinter和PIL實現看圖工具

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛沁县| 津南区| 右玉县| 南漳县| 白城市| 湖州市| 额济纳旗| 奎屯市| 荆门市| 江孜县| 枣阳市| 盈江县| 清远市| 江阴市| 合江县| 武邑县| 高安市| 梓潼县| 赤水市| 那曲县| 辉南县| 大余县| 闽清县| 广南县| 黄龙县| 重庆市| 洱源县| 遂平县| 施秉县| 八宿县| 柘荣县| 兴国县| 黑龙江省| 延川县| 青田县| 布尔津县| 称多县| 德州市| 科尔| 阳东县| 延庆县|