Я создаю игру "Морские корабли" с использованием Tkinter и использую PNG-изображения кораблей с прозрачным фоном для отображения на доске.
Требуемое изображение с прозрачным фоном
Я искал, как заставить Tkinter показывать значение прозрачности для изображений PNG, и я нашел эту нить .Предполагается преобразовать изображение RGB в изображение RGBA (со значением альфа для прозрачности).Я пытался скопировать код, но он, похоже, не работает.
Вывод
Это код, который я до сих пор:
import tkinter as tk
from PIL import ImageTk, Image
#I skipped out the code for making root (main window)
#Creates the pop up window for firing
commandWin = Toplevel(root)
commandWin.title("Command Centre")
commandWin.geometry("400x250")
commandWin.configure(bg='grey')
commandWin.resizable(False, False)
fireButton = Button(commandWin, text="FIRE", bg="red", fg="white", height=5, width=15, font=("Courier"))
fireButton.pack(side=BOTTOM)
#Creates images for placing ships
global carrier, battleship, cruiser, destroyer, submarine
#Converts images from RGB to RGBA
def RGBAImage(path):
return Image.open(path).convert("RGBA")
carrier = RGBAImage("./assets/aircraftCarrier.png")
carrier = ImageTk.PhotoImage(carrier)
label = Label(commandWin, image=carrier)
label.pack()
Помощь будет принята с благодарностью.