为了账号安全,请及时绑定邮箱和手机立即绑定

当我使用 ImageTk 时,我的图像不透明

当我使用 ImageTk 时,我的图像不透明

潇湘沐 2023-08-22 10:17:49
ImageTk我正在尝试使用和将图像放入窗口中PhotoImage。下面是代码:import tkinter as tkimport random as rfrom PIL import ImageTk, Imagewindow = tk.Tk()HEIGHT = window.winfo_screenwidth()WIDTH = window.winfo_screenheight()RESOL = str(str(HEIGHT) + "x" + str(WIDTH+7) + "+" + str(-7) + "+" + str(0))window.geometry(RESOL)x = int(HEIGHT)/2y = int(WIDTH)/2updatex = HEIGHT + (0.6 * HEIGHT)main = tk.Frame(window, height = WIDTH, width = HEIGHT)main.configure(bg = "white", highlightthickness = 0)main.place(x = x, y = y, anchor = "center")Map = tk.Canvas(window, height = int((900 - int(x))) + int(900), width = int((900 - int(y))) + int(900), bg = "#44b863", highlightthickness = 0)Map.place(x = updatex, y = int(y), anchor = "center")p = tk.PhotoImage(file = "TitleForGameReal.png")play_solo_image = tk.PhotoImage(file = "PlaySoloButton.png")play_duo_image = tk.PhotoImage(file = "PlayDuoButton.png")title = tk.Label(main, image = p, highlightthickness = 0, bd = 0)title.place(relx = 0.5, rely = 0.35, anchor = "center")class CustomButton:    def __init__(self, image, master, height, width, bordercolor):        self.master = master        self.frame = tk.Frame(master, height = height, width = width, highlightthickness = 0)        self.image = tk.Label(self.frame, image = image, borderwidth = 0, bg = "dark grey")        self.bordercolor = bordercolor    def put(self, x, y, command):        self.x, self.y = x, y        self.frame.place(relx = x, rely = y, anchor = "center")        self.image.pack()        def enter(event = "<Enter>"):            self.image.config(borderwidth = 3)        self.image.bind("<Enter>", enter)        def leave(event = "<Leave>"):            self.image.config(borderwidth = 0)        self.image.bind("<Leave>", leave)        def bind_command(event = "<Button-1>"):            command()        self.image.bind("<Button -1>", bind_command)我还将留下图像作为参考,因为我在 PhotoShop 中编辑了照片以严格使其具有透明背景:
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

问题是需要一个 PhotoImage 实例image的选项Map.create_image(updatex, y, image = self.image),但你给它一个标签,所以要修复它只需说。


class Player:

    def __init__(self, hp, image):

        self.hp = hp

        self.image = image #creating an instance variable

        self.pic = ImageTk.PhotoImage(self.image) #making an photoimage instance

        self.cv = Map.create_image(updatex, y, image = self.pic) #passing the photo image instance

        self.pic.image = self.pic #keeping a reference to the image

希望这已经解决了错误,如果有任何错误或疑问,请告诉我。


查看完整回答
反对 回复 2023-08-22
  • 1 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信