Как повернуть и изменить размеры изображения в tkinter?

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

от forest , в категории: Python , 6 месяцев назад

Как повернуть и изменить размеры изображения в tkinter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от sherwood_littel , 6 месяцев назад

@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.

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

от loyal , 6 дней назад

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