Python Pillow的ImageTk不显示源自某些文件类型的图像

时间:2018-08-15 20:35:28

标签: image python-2.7 tkinter python-imaging-library

假设我有以下代码:

from PIL import Image, ImageTk
from tkinter import *

im = Image.open(<Some file path>)
root = Tk()
photo = ImageTk.PhotoImage(im)
label = Label(root, image=photo)
label.pack()
root.mainloop()

当文件路径是png之类的典型文件类型时,程序将按照您的期望显示图像。但是,当我给它一个tga文件(未压缩的Targa32 128x128)时,它不会显示图像(只留下一个空白区域)。但是,当使用Pillow的Image.show()方法时,图像确实显示,只是不与tkinter一起显示。

请注意,我仅使用全局变量,因此它不会成为垃圾回收问题。

如何将我的tga文件显示在我的tkinter界面中?

1 个答案:

答案 0 :(得分:0)

那是短暂的。事实证明,出于某种原因将图像转换为RBG固定。

from PIL import Image, ImageTk
from tkinter import *

im = Image.open(<Some file path>)
root = Tk()
photo = ImageTk.PhotoImage(im.convert("RGB"))
label = Label(root, image=photo)
label.pack()
root.mainloop()