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 tkimport 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 tkimport tkinter.filedialog as fdimport 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 tkimport tkinter.filedialog as fdimport 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()