python 使用Tkinter在窗口中创建图像

lmvvr0a8  于 2023-01-29  发布在  Python
关注(0)|答案(2)|浏览(148)

我正在用Python Tkinter创建一个21点游戏,并试图在窗口中的画布上获得一个简单的卡片图像。我尝试了所有方法,但仍然无法使其工作。我认为问题是将文件路径放入我的代码中,但我直接从该图像的属性中复制并粘贴它。
下面是我最近使用的代码:

from PIL import Image, ImageTk
import random
from tkinter import *

root = Tk()
root.title("Blackjack")

canvas = Canvas(root, bg="green", height=1200, width=800)
canvas.create_image(
    600, 400, image=r"C:/Users/dskim/OneDrive/Desktop/GUI/Images/Cards/2_of_clubs.png")
card_img = ImageTk.PhotoImage(
    file=r"C:/Users/dskim/OneDrive/Desktop/GUI/Images/Cards/2_of_clubs.png")
canvas.pack()

root.mainloop()

这是我一直得到的错误:_tkinter. Tcl错误:无法找到图像文件"C:/USER/D_000.png"。
我试过不同的路径名和不同类型的代码,但仍然没有运气。

xlpyo6sf

xlpyo6sf1#

您可以使用tk.PhotoImage()加载.gif的图像,然后将其添加到canvas

test_gif = PhotoImage(file=r"C:\Users\dskim\OneDrive\Desktop\GUI\Images\Cards\2_of_clubs.gif")
canvas.create_image(600, 400, image=test_gif)

代码应为:

from PIL import Image, ImageTk
import random
from tkinter import *

root = Tk()
root.title("Blackjack")

canvas = Canvas(root, bg="green", height=1200, width=800)
test_gif = PhotoImage(file=r"C:\Users\dskim\OneDrive\Desktop\GUI\Images\Cards\2_of_clubs.gif")
canvas.create_image(600, 400, image=test_gif)
card_img = ImageTk.PhotoImage(file=r"C:\Users\dskim\OneDrive\Desktop\GUI\Images\Cards\2_of_clubs.png")
canvas.pack()

root.mainloop()

您可以通过here将图像格式从.png更改为.gif
如果没有解决问题,您应该再次检查文件路径中是否有任何拼写错误。

9gm1akwq

9gm1akwq2#

.create_image()image选项需要PhotoImage的示例,而不是完整路径,因此在调用.create_image()之前,需要移动行card_img = ImageTk.PhotoImage(...)

card_img = ImageTk.PhotoImage(file="C:/Users/dskim/OneDrive/Desktop/GUI/Images/Cards/2_of_clubs.png")
canvas.create_image(600, 400, image=card_img)

相关问题