Хочу наложить фигуры на шахматную доску, но когда накладываю, из доски вырезается полный квадрат соответствующий размеру PNG:
import tkinter as tk
from PIL import ImageTk, Image
win = tk.Tk()
win.geometry("1000x1000")
frame = tk.Frame(win, width=1000, height=1000)
frame.pack()
frame.place(anchor='center', relx=0.5, rely=0.5)
im_board = ImageTk.PhotoImage(Image.open('imgs/Chess metabased.png').resize((1000, 1000)))
im_white_king = ImageTk.PhotoImage(Image.open('imgs/Chess white king.png').resize((120, 125)))
label_board = tk.Label(frame, image=im_board)
label_board.place(x=0, y=0)
label_king = tk.Label(frame, image=im_white_king)
label_king.place(x=100, y=100)
win.mainloop()
Вывод:
Putalpha не спасает, выводит артефакты:
def alpha_use(img):
if img.mode == "RGBA":
a_channel = Image.new('L', img.size, 'White') # 'L' 8-bit pixels, black and white
img.putalpha(a_channel)
return img
...
im_board = ImageTk.PhotoImage(alpha_use(Image.open('imgs/Chess metabased.png').resize((1000, 1000))))
im_white_king = ImageTk.PhotoImage(alpha_use(Image.open('imgs/Chess white king.png').resize((120, 125))))
...
Вывод:
Есть ли способ привести к нужному отображению?