首页 > 解决方案 > Python Pillow 的 ImageTk 不显示源自某些文件类型的图像

问题描述

假设我有以下代码:

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 界面中?

标签: imagepython-2.7tkinterpython-imaging-library

解决方案


好吧,那是短暂的。事实证明,由于某种原因,将图像转换为 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()

推荐阅读