如何将Tkinter图像放入背景?无论文件类型如何,都要保持相同的错误消息:

时间:2016-07-19 20:05:42

标签: python image tkinter

  

消息文件名
  语法错误
     (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 ....将它们放入标签并打包或放置。

我还有另一个错误消息,我手头没有,但它有点像:

  

Invaild'____str____'值类型:'JpegImageFormat'不是公认的格式。

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

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

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

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

编辑: python 3x,import tkinter和PIL导入ImageTk,Image

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

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

2 个答案:

答案 0 :(得分:2)

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

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)))

我希望我帮助过你

答案 1 :(得分:0)

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

{
  "hosting": {
    "rewrites": [{"source": "**", "destination": "/index.html"}]
  }
}

它还支持from tkinter import * root = Tk() imgobj = PhotoImage(file="filename.png") label = Label(root, image=imgobj) label.pack() 图片格式,但不支持gif类型。