Input
โค้ด: เลือกทั้งหมด
from tkinter import Tk,Menu,Label
from PIL import Image,ImageTk
from tkinter import filedialog
class MainApp:
def __init__(self,master):
#assign class variable to input parameter
self.master = master
#set title
self.master.title("Open IMG")
self.lbl = Label(self.master)
def createMenu(self):
#กำหนดตัวแปรคลาสให้กับพารามิเตอร์อินพุต
menubar = Menu(self.master)
self.master.config(menu=menubar)
#เมนูไฟล์
fileMenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="File", menu=fileMenu)
fileMenu.add_command(label="Open...",command=self.openFile)
fileMenu.add_separator()
fileMenu.add_command(label="Exit", command=self.master.destroy)
#เมนูแก้ไข
editMenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Edit", menu=editMenu)
editMenu.add_command(label="Restore Image", command=self.imgRestore)
#เมนูที่ใช้กดหมุนภาพ
processMenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label="Process", menu=processMenu)
processMenu.add_command(label="Rotate", command=self.imgRotate)
def openFile(self):
#ประเภทไฟล์รองรับ
ftypes = [('Image files', '*.jpg *.png *.gif'),
('All files', '*')]
filename = filedialog.askopenfilename(parent=self.master,title='Choose a file',filetypes=ftypes)
if filename:
try:
#เปิดภาพ
self.im = Image.open(filename)
self.imOrigin = self.im.copy()
self.showImage()
except: pass
def showImage(self):
self.imTk = ImageTk.PhotoImage(self.im)
self.lbl.destroy()
self.lbl = Label(self.master, image=self.imTk)
self.lbl.pack()
def imgRestore(self):
self.im = self.imOrigin.copy()
self.showImage()
def imgRotate(self):
self.im = self.im.rotate(45)
self.showImage()
gui = Tk()
gui.geometry("500x500")
app = MainApp(gui)
app.createMenu()
gui.mainloop()
คำสั่งการทำงานที่ใช้เปิดไฟล์นั้นสามารถเปิดไฟล์ได้เฉพาะรูปภาพ เปิดได้หลายประเภทเช่น jpg png gif หรือ All files เป็นต้น นอกนั้นจะเป็นคำสั่งที่อยู่ภายใต้ menubar แทบเมนู Process --> Rolate นั้นตั้งค่าหมุนที่ละ 45 องศา
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : Python tkinter สร้างปุ่มเมนูเพื่อเปิดไฟล์ภาพ
-บทเรียน Python
-บทเรียน Python Framework Flask
-ความหมายของคำ คืออะไร
-VDO Tutorial - Python
-ถาม-ตอบ Java & Python