【发布时间】:2020-05-05 17:49:46
【问题描述】:
我正在尝试使用 Pillow 和 Tkinter 让 PNGA 图像显示在我的 UI 中。我在 macOS 上使用 python 3.7.7。
import sys
import tkinter as tk
from PIL import ImageTk, Image
path = "path_to_image.png"
im = Image.open(path)
print(im.mode) # prints RGBA
root = tk.Tk()
root.title("Karel")
frame = tk.Frame(root)
frame.pack()
canvas = tk.Canvas(frame, bg="white", width=500, height=500)
canvas.pack()
img = Image.open(path) # PIL solution
img = img.resize((250, 250), Image.ANTIALIAS) #The (250, 250) is (height, width)
img = ImageTk.PhotoImage(img) # convert to PhotoImage
image = canvas.create_image(150,150, image = img)
root.mainloop()
当我尝试使用没有 Alpha 通道的图像时,它可以工作。添加img = ImageTk.PhotoImage(img.convert("RGB")) 以删除Alpha 通道会出现一个黑框。
任何帮助将不胜感激。
图片:
【问题讨论】:
-
当我输入
img = ImageTk.PhotoImage(img.convert("RGB"))行时,我实际上得到了一个错误。你确定这是正确的吗? -
是的——我没有收到错误。如果这很重要,我在 macOS 上使用 Python 3.7.7 和 Pillow 7.1.2..
-
是的,我认为这很重要,我在 python 3.7 中运行它并且它有效。
-
澄清一下,是图像出现了,还是黑框出现了?
-
我有一个黑匣子。我不知道错误是什么,因为我不熟悉 RGBA 图像
标签: python-3.x macos tkinter python-imaging-library python-3.7