Python tkinter เปิดไฟล์ภาพ-หมุนภาพ-กลับสู่ภาพเดิม

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ichimarusoichi
PHP Super Member
PHP Super Member
โพสต์: 352
ลงทะเบียนเมื่อ: 07/01/2019 12:19 pm

Python tkinter เปิดไฟล์ภาพ-หมุนภาพ-กลับสู่ภาพเดิม

โพสต์ที่ยังไม่ได้อ่าน โดย ichimarusoichi »

วันนี้ผมจะมาบอกวิธีการเปิดไฟล์ภาพที่เราต้องการและสามารถทำการหมุนภาพได้แล้วยังสามารถกดเพื่อกลับสู่สภาพเดิมของภาพได้ โดยคำสั่งการทำของ python tkinter นั้นจะอยู่ในรูปแบบคำสั่ง menubar ทั้งหมดไม่ว่าจะเป็นปิดภาพ หมุนภาพ หมุนภาพกลับมาที่เดิม

ต้องรัน terminal ก่อนรันคำสั่งการทำงานไม่งั้นโค้ดจะไม่ทำงาน
Window

โค้ด: เลือกทั้งหมด

pip install Pillow
Ubuntu

โค้ด: เลือกทั้งหมด

sudo pip install pil
Input

โค้ด: เลือกทั้งหมด

from tkinter import Tk,Menu,Label
from PIL import Image,ImageTk

class MainApp:

    def __init__(self,master):
        #กำหนดตัวแปรคลาสให้กับพารามิเตอร์อินพุต
        self.master = master
        #ตั้งชื่อหัวข้อ
        self.master.title("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="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 loadImage(self):
        self.img = Image.open("dog.jpg")
        self.imOrigin = self.img.copy()
        self.showImage()

    def showImage(self):
        self.imgTk = ImageTk.PhotoImage(self.img)
        self.lbl.destroy()
        self.lbl = Label(self.master, image=self.imgTk)
        self.lbl.pack()

    def imgRestore(self):
        self.img = self.imOrigin.copy()
        self.showImage()

    def imgRotate(self):
        self.img = self.img.rotate(45)
        self.showImage()

root = Tk()
app = MainApp(root)
app.createMenu()
app.loadImage()
root.mainloop()
Output
dog_sleep.png
dog_sleep.png (369.71 KiB) Viewed 1236 times
ในคำสั่งของการเปิดภาพให้ขึ้นนั้นต้องนำภาพไปไว้ที่เดียวกับไฟล์ที่ใช้รัน
-Menufile-->Exit ปิดหน้าต่าง
-Edit-->Restore image ทำให้ภาพกลับสู่สภาพเดิม
-Process-->Rotate หมุนภาพจากขวาไปซ้าย

คำสั่งการทำงานของ Python tkinter เปิดไฟล์ภาพ/หมุนภาพ/ปรับภาพกลับมาเป็นภาพเดิม ขั้นตอนแรกของคำสั่งการทำงานต้องทำการติดตั้ง path ของ PIL เพื่อให้โค้ดรู้จักคำสั่ง จากนั้นทำการสร้างแทบเมนูต่างๆไว้สำหรับหมุนภาพ รีภาพสู่สภาพเดิม ส่วนการทำงานของการเปิดภาพนั้นจะต้องเปิดไฟล์ภาพกับโค้ดรันในที่เดียวกัน

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : Python tkinter เปิดไฟล์ภาพ-หมุนภาพ-กลับสู่ภาพเดิม
-บทเรียน Python
-บทเรียน Python Framework Flask
-ความหมายของคำ คืออะไร
-VDO Tutorial - Python
-ถาม-ตอบ Java & Python
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 80