@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 пикселей.