import tkinter as tk
#建立函數,用來給按鈕執行
def sayHello():
myLabel.configure(text="Hello")
#建視窗
myWindow=tk.Tk()
myWindow.geometry("300x100")
#製作標籤、放置標籤
myLabel=tk.Label(text="標籤")
myLabel.pack()
#製作按鈕、放置按鈕
myButton=tk.Button(text="確定", command=sayHello)
myButton.pack()
#顯示視窗
tk.mainloop()
要用到tkinter中的filedialog模組
import tkinter as tk
import tkinter.filedialog as fd #引用檔案對話框模組
#建立函數,用來給按鈕執行
def openFile():
fpath = fd.askopenfilename()
if fpath:
myLabel.configure(text="開啟檔案成功") #如果開啟成功顯示『開啟檔案成功』
#建視窗
myWindow=tk.Tk()
myWindow.geometry("300x100")
#製作標籤、放置標籤
myLabel=tk.Label(text="標籤")
myLabel.pack()
#製作按鈕、放置按鈕
myButton=tk.Button(text="開啟檔案", command=openFile)
myButton.pack()
#顯示視窗
tk.mainloop()
import tkinter as tk
import tkinter.filedialog as fd
import PIL.Image as Pimg #處理影像的模組
import PIL.ImageTk as PimgTk #與Tkinter搭配顯示的模組
#建立函數,用來給按鈕執行
def openFile(): #開檔案
fpath = fd.askopenfilename()
if fpath:
displayImg(fpath) #如果開啟成功顯示圖片
def displayImg(path):
myImg = Pimg.open(path).resize((300,200)) #載入影像,改變大小
myImgTk = PimgTk.PhotoImage(myImg) #影像包裝成Tkinter物件
myLabel.configure(image = myImgTk)
myLabel.image = myImgTk
#建視窗
myWindow=tk.Tk()
myWindow.geometry("300x100")
#製作標籤、放置標籤
myLabel=tk.Label(text="標籤")
myLabel.pack()
#製作按鈕、放置按鈕
myButton=tk.Button(text="開啟檔案", command=openFile)
myButton.pack()
#顯示視窗
tk.mainloop()
遇到想要的功能,不知道怎麼使用,請到模組的說明書查詢
例如pillow模組 https://pypi.org/project/Pillow/
查看關於Image模組中的convert函數的功能
https://pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.Image.convert
我可以從文件中可以看出
如果要轉換成灰階可以用convert('L')來達成
而且灰階值的計算也寫得很清楚
L = R * 299/1000 + G * 587/1000 + B * 114/1000
是從三原色計算而來的喔,我們加到程式中試試看
其他資料則可以Google而得
例如
https://blog.csdn.net/icamera0/article/details/50843172
import tkinter as tk
import tkinter.filedialog as fd
import PIL.Image as Pimg #處理影像的模組
import PIL.ImageTk as PimgTk #與Tkinter搭配顯示的模組
#建立函數,用來給按鈕執行
def openFile(): #開檔案
fpath = fd.askopenfilename()
if fpath:
displayImg(fpath) #如果開啟成功顯示圖片
def displayImg(path):
myImg = Pimg.open(path).convert("L").resize((300,200)) #載入檔案、轉灰階、縮大小
myImgTk = PimgTk.PhotoImage(myImg) #影像包裝成Tkinter物件
myLabel.configure(image = myImgTk)
myLabel.image = myImgTk
#建視窗
myWindow=tk.Tk()
myWindow.geometry("300x100")
#製作標籤、放置標籤
myLabel=tk.Label(text="標籤")
myLabel.pack()
#製作按鈕、放置按鈕
myButton=tk.Button(text="開啟檔案", command=openFile)
myButton.pack()
#顯示視窗
tk.mainloop()