Как заставить Tkinter отображать альфа-значение в изображениях PNG - PullRequest
0 голосов
/ 11 июля 2019

Я создаю игру "Морские корабли" с использованием 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()

Помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...