@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 градусов по часовой стрелке.