Как повернуть картинку в tkinter?

Пользователь

от francis_schuster , в категории: Python , 21 день назад

Как повернуть картинку в tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от akeem , 19 дней назад

@francis_schuster 

Для поворота картинки в библиотеке Tkinter требуется использовать метод rotate из модуля PIL (Python Imaging Library). Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from tkinter import *
from PIL import ImageTk, Image

def rotate_image():
    # открыть изображение и повернуть на 90 градусов
    rotated_image = original_image.rotate(90)
    
    # создать новый объект ImageTk из повернутого изображения
    rotated_image_tk = ImageTk.PhotoImage(rotated_image)
    
    # обновить изображение в окне
    canvas.itemconfig(image_item, image=rotated_image_tk)
    
    # сохранить ссылку на новый объект ImageTk, чтобы он не был удален сборщиком мусора
    canvas.rotated_image_tk = rotated_image_tk

# создать окно
root = Tk()

# открыть изображение
original_image = Image.open("image.jpg")

# создать объект ImageTk из исходного изображения
original_image_tk = ImageTk.PhotoImage(original_image)

# создать холст для отображения изображения
canvas = Canvas(root, width=original_image.width, height=original_image.height)
canvas.pack()

# нарисовать изображение на холсте
image_item = canvas.create_image(0, 0, image=original_image_tk, anchor=NW)

# создать кнопку для поворота изображения
rotate_button = Button(root, text="Повернуть", command=rotate_image)
rotate_button.pack()

# запустить главный цикл обработки событий
root.mainloop()


В данном примере создается окно, в котором отображается картинка с правой стороны. При нажатии на кнопку "Повернуть" изображение поворачивается на 90 градусов по часовой стрелке.