如何在不使用PIL模块的情况下插入图像?

2024-10-01 09:24:49 发布

您现在位置:Python中文网/ 问答频道 /正文

LH=Label(LowerHeading, font=('arial',12,'bold'), text ="Update", bd = 10, width = 15, anchor = 'w')
LH.grid(row=1,column=0)
path = 'C:/Users\Ermira1\Documents\Ermira\1. Sixth Form\Year 13\Computer Science/dress.jpg'
photo = PhotoImage(file="path")
LeftLower= Frame(text=photo)

由于某些原因,这不起作用,我不知道为什么。在

错误消息显示如下:

^{pr2}$

Tags: pathtextupdatewidthlabelbdgridrow
1条回答
网友
1楼 · 发布于 2024-10-01 09:24:49

直接的错误是您试图从一个名为"path"的地方获取图像,这绝不是一个路径,您可能是指path。在

photo = PhotoImage(file=path)

这会产生另一个错误,因为path的字符串也是错误的,它不一致地使用\和{};而且由于\是一个转义字符,以某些方式修改字符串,所以您应该用double(\\)替换它们来转义转义字符本身,或者使用原始字符串格式r"my string such as path"。因此替换为:

^{pr2}$

或者:

path = 'C:\\Users\\Ermira1\\Documents\\Ermira\\1. Sixth Form\\Year 13\\Computer Science\\dress.jpg'

^{bq}$

首先,如果不使用额外的库,您就无法做到这一点 或其他内容),除非支持该格式(.jpg,例如,库不支持)。在

其次,图像可以以多种方式插入,为了清晰起见,让我们使用标签来显示。在

下面的代码首先下载图像(如果图像已经存在,可以完全替换),然后尝试显示.png(8.6之后的版本支持它),如果不能显示.png,则尝试显示.gif:

try:                        # In order to be able to import tkinter for
    import tkinter as tk    # either in python 2 or in python 3
except ImportError:
    import Tkinter as tk


def download_images():
    # In order to fetch the image online
    try:
        import urllib.request as url
    except ImportError:
        import urllib as url
    url.urlretrieve("https://i.stack.imgur.com/IgD2r.png", "lenna.png")
    url.urlretrieve("https://i.stack.imgur.com/sML82.gif", "lenna.gif")


if __name__ == '__main__':
    download_images()
    root = tk.Tk()
    widget = tk.Label(root, compound='top')
    widget.lenna_image_png = tk.PhotoImage(file="lenna.png")
    widget.lenna_image_gif = tk.PhotoImage(file="lenna.gif")
    try:
        widget['text'] = "Lenna.png"
        widget['image'] = widget.lenna_image_png
    except:
        widget['text'] = "Lenna.gif"
        widget['image'] = widget.lenna_image_gif
    widget.pack()
    root.mainloop()

相关问题 更多 >