【问题标题】:How to put a Tkinter Image into background? keep getting same error msg no matter the file type:如何将 Tkinter 图像放入背景?无论文件类型如何,都会收到相同的错误消息:
【发布时间】:2016-11-22 21:08:07
【问题描述】:

消息文件名
语法错误
(unicode 错误)“unicodeescape”编解码器无法解码位置 2-3 中的字节:>截断 \UXXXXXXXX 转义 C:\visualexample.py

我已经导入了 PIL 和 tkinter,并尝试了一些不同的方法,但我看到的主要建议是:

img = ImageTk.PhotoImage(Image.open("C:\testpic.gif"))

img = tk.PhotoImage(Image.open("C:\testpic.gif"))

也尝试过图像文件类型:.bmp .jpeg .png .gif....将它们放入标签并打包或放置。

我还收到了另一个我手头没有的错误消息,但它类似于:

“____str____”值类型无效:“JpegImageFormat”不是可识别的格式。

当这个出现时,它也适用于所有图片文件类型。

我想我只需要用普通的旧纯色背景和字体颜色来美化我的程序。也许 PIL Lib 是错误的(我必须将它与 python 3.3 分开),我认为我得到了正确的。

也许有文件大小(Mb)限制?

如果有人对如何将图片文件放在后台有任何建议,那就太好了!

编辑: python 3x,导入 tkinter 并从 PIL 导入 ImageTk,Image

建议适用于 .gif .bmp .png .jpg :)

img = PIL.ImageTk.PhotoImage(PIL.Image.open(picfilepath))

【问题讨论】:

  • 请添加更多代码——您导入了哪些模块,如何使用它们等。
  • 您使用的是 Python 3.x 还是 2.x?
  • 反斜杠是转义字符。把它们加倍。例如C:\\testpic.gif
  • @Hobbes:或者使用正斜杠,所有主流操作系统已经支持了一段时间。

标签: python image tkinter


【解决方案1】:

我在使用 PIL 和 Tkinter Images 时也遇到了问题……当我找到解决方案时,我一直在寻找几个小时。试试这个,希望对你有帮助,这个简单的程序运行一个带有图像的标签:

from tkinter import *
import PIL.Image
import PIL.ImageTk

root = Tk()

image = PIL.ImageTk.PhotoImage(PIL.Image.open ("C:/Users/Vladi/example.jpg"))  
label = Label (root, image = image).pack() 

root.mainloop()

我刚刚指定了我从中获取模块的所有库。还要注意反斜杠......使用你使用过的那些,你会得到一个错误。使用这个:/ 或:\\

如果你想调整它的大小:

img = PIL.Image.open ("C:/Users/Vladi/example.jpg")
img = img.resize ((80, 75))
img = PIL.ImageTk.PhotoImage(self.im)

在调用PhotoImage之前要调整大小,也可以写成一行:

img = PIL.ImageTk.PhotoImage(PIL.Image.open ("C:/Users/Vladi/example.jpg").resize((80, 75)))

希望对你有帮助

【讨论】:

  • 如果它解决了您的问题,请不要忘记接受答案;)
【解决方案2】:

PIL 似乎有严重的问题。我认为它根本不支持 Python 3 (https://mail.python.org/pipermail/image-sig/2009-March/005498.html)。但我也在 Python 2.7.11 上尝试过,但无法显示任何图像。如果你想在 Tkinter 上显示图片,我建议你试试这个:

from tkinter import *
root = Tk()

imgobj = PhotoImage(file="filename.png")

label = Label(root, image=imgobj)
label.pack()

同样支持gif图片格式,但不支持jpg类型。

【讨论】:

    猜你喜欢
    • 2014-12-13
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 2021-07-12
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    相关资源
    最近更新 更多