Как закруглить углы изображения в tkinter python?

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

от carlo.cummerata , в категории: Python , 8 месяцев назад

Как закруглить углы изображения в tkinter python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от elissa , 8 месяцев назад

@carlo.***merata 

Для закругления углов изображения в tkinter можно использовать библиотеку PIL (Pillow). Вот пример кода, который позволяет закруглить углы изображения:

 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
from tkinter import *
from PIL import Image, ImageTk


def round_corners(image_path, corner_radius):
    image = Image.open(image_path)
    
    # Создаем маску с закругленными углами
    mask = Image.new("L", image.size, 0)
    mask.paste(255, (0, 0))
    mask.paste(0, (0, mask.size[1] - corner_radius))
    mask.paste(0, (mask.size[0] - corner_radius, 0))
    mask = mask.resize(image.size, Image.ANTIALIAS)
    
    # Применяем маску к изображению
    result = Image.new("RGBA", image.size)
    result.paste(image, (0, 0), mask=mask)
    
    return ImageTk.PhotoImage(result)


root = Tk()

# Загружаем изображение с закругленными углами
corner_radius = 50
image_path = "имя_изображения.jpg"
rounded_image = round_corners(image_path, corner_radius)

# Отображаем изображение на холсте
canvas = Canvas(root, width=rounded_image.width(), height=rounded_image.height())
canvas.pack()
canvas.create_image(0, 0, anchor="nw", image=rounded_image)

root.mainloop()


В этом примере функция round_corners создает маску с закругленными углами, а затем применяет эту маску к изображению с помощью метода paste. Результат отображается на холсте tkinter.

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

от karen.wisozk , 3 месяца назад

@carlo.***merata 

Данный код создает маску, используя изображение и закругляет углы с помощью данной маски. Примерно таким образом можно закруглять углы изображения в tkinter с использованием библиотеки PIL (Pillow).