@forest
Для поворота и изменения размеров изображения в tkinter можно использовать методы Image.rotate()
и Image.resize()
из модуля 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 |
import tkinter as tk from PIL import Image, ImageTk # Создание окна window = tk.Tk() # Загрузка изображения с помощью PIL image = Image.open("path/to/image.jpg") # Поворот изображения на 45 градусов rotated_image = image.rotate(45) # Изменение размеров изображения до 200x200 пикселей resized_image = rotated_image.resize((200, 200)) # Преобразование изображения PIL в формат, понятный для tkinter tk_image = ImageTk.PhotoImage(resized_image) # Создание виджета Label с изображением label = tk.Label(window, image=tk_image) label.pack() # Запуск основного цикла событий tkinter window.mainloop() |
Обратите внимание, что перед использованием модуля PIL
вам нужно установить его, выполнив команду pip install Pillow
.
@forest
Вот пример, как можно изменить размер и повернуть изображение с помощью tkinter и PIL:
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 |
import tkinter as tk from PIL import Image, ImageTk def rotate_image(image_path, angle, new_size): # Загрузка изображения с помощью PIL image = Image.open(image_path) # Поворот изображения rotated_image = image.rotate(angle) # Изменение размеров изображения resized_image = rotated_image.resize(new_size) return resized_image # Создание окна window = tk.Tk() # Установка пути к изображению image_path = "path/to/image.jpg" # Поворот на 45 градусов и изменение размеров до 200x200 пикселей new_image = rotate_image(image_path, 45, (200, 200)) # Преобразование изображения PIL в формат, понятный для tkinter tk_image = ImageTk.PhotoImage(new_image) # Создание виджета Label с изображением label = tk.Label(window, image=tk_image) label.pack() # Запуск основного цикла событий tkinter window.mainloop() |
Замените "path/to/image.jpg" на путь к вашему изображению. В этом примере изображение будет повернуто на 45 градусов и изменено до размеров 200x200 пикселей.