【问题标题】:How to rotate an image on canvas by 90 degree如何将画布上的图像旋转 90 度
【发布时间】:2020-08-29 11:15:11
【问题描述】:

画布上有一个加载的图像,我必须将其旋转 90 度。但是当我旋转它时,它不适合画布并且背景颜色变黑。我希望图像正确地适合画布。

import tkinter as tk
from tkinter import *
from PIL import Image,ImageTk


class SimpleApp(tk.Frame):
    def __init__(self, master, filename, **kwargs):
        self.master = master
        self.filename = filename
        tk.Frame.__init__(self, master)
        self.canvas = tk.Canvas(master, width=1500, height=1200,bg='white')
        self.canvas.grid(row=0,column=0,sticky=(N,W,E,S))
        self.image = Image.open("C:\\Users\\Sripad Jevala\\Desktop\\RESIZE\\Cat1_1.jpg")
        angle = 90
        self.tkimage = ImageTk.PhotoImage(self.image.rotate(angle))
        canvas_obj = self.canvas.create_image(550, 350, image=self.tkimage)

root = tk.Tk()
root.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)
app = SimpleApp(root, "C:\\Users\\Sripad Jevala\\Desktop\\RESIZE\\Cat1_1.jpg")
root.mainloop()

【问题讨论】:

    标签: python canvas tkinter image-rotation


    【解决方案1】:

    你需要设置expand=1:

    self.tkimage = ImageTk.PhotoImage(self.image.rotate(angle, expand=1))
    

    【讨论】:

      猜你喜欢
      • 2014-07-23
      • 2017-10-19
      • 1970-01-01
      • 2019-08-23
      • 2016-06-29
      • 2012-07-24
      • 1970-01-01
      • 2016-05-20
      • 2013-02-13
      相关资源
      最近更新 更多