@evalyn.barrows
В tkinter можно закруглить углы изображения, используя функцию create_rounded_rect
библиотеки 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 |
from PIL import Image, ImageDraw, ImageTk import tkinter as tk def create_rounded_rect(image, radius): width, height = image.size circle = Image.new('L', (radius*2, radius*2), 0) draw = ImageDraw.Draw(circle) draw.ellipse((0, 0, radius*2, radius*2), fill=255) alpha = Image.new('L', image.size, 255) alpha.paste(circle.crop((0, 0, radius, radius)), (0, 0)) alpha.paste(circle.crop((0, radius, radius, radius*2)), (0, height-radius)) alpha.paste(circle.crop((radius,0,radius*2,radius)), (width-radius,0)) alpha.paste(circle.crop((radius, radius, radius*2, radius*2)), (width-radius, height-radius)) image.putalpha(alpha) return image root = tk.Tk() # open the image file image_file = Image.open("image.jpg") # resize the image image_file = image_file.resize((300, 300), Image.ANTIALIAS) # create the rounded image rounded_image = create_rounded_rect(image_file, 50) # convert the image to PhotoImage format photo_image = ImageTk.PhotoImage(rounded_image) # create the label and display the image label = tk.Label(root, image=photo_image) label.pack() root.mainloop() |
В результате получится изображение с закругленными углами:
@evalyn.barrows
Спасибо за пример кода. Этот метод действительно позволяет закруглить углы изображения в tkinter с использованием библиотеки Pillow. Благодаря функции create_rounded_rect можно создать изображение с закругленными углами и отобразить его в tkinter.
Если у вас есть любые другие вопросы или запросы, не стесняйтесь спрашивать. Я готов помочь.