【发布时间】:2011-03-17 06:14:34
【问题描述】:
我在 Tkinter 中放入了一个部分透明的 PNG 图像,我得到的就是这个
如何使右侧的黑色三角形清晰? (就像它应该是的那样)
这是 Windows 7 上的 python 2.6,顺便说一句。
【问题讨论】:
-
您能否确认该图像在另一个程序中以透明方式显示?
标签: python png transparency tkinter
我在 Tkinter 中放入了一个部分透明的 PNG 图像,我得到的就是这个
如何使右侧的黑色三角形清晰? (就像它应该是的那样)
这是 Windows 7 上的 python 2.6,顺便说一句。
【问题讨论】:
标签: python png transparency tkinter
这是一个例子(PNG 文件 example.png 在不同的地方有很多透明度):
from Tkinter import Tk, Frame, Canvas
import ImageTk
t = Tk()
t.title("Transparency")
frame = Frame(t)
frame.pack()
canvas = Canvas(frame, bg="black", width=500, height=500)
canvas.pack()
photoimage = ImageTk.PhotoImage(file="example.png")
canvas.create_image(150, 150, image=photoimage)
t.mainloop()
您需要确保图像已存储为“RGBA”,即带有 Alpha 通道的 RGB。您可以使用您选择的图形程序或使用 PIL (Python Imaging Library) 进行检查:
import Image
im = Image.open("button.png")
print im.mode
这应该打印“RGBA”。如果没有,您必须确保 Alpha 通道与图像一起保存。您必须查阅您的图形程序手册以了解如何执行此操作。
【讨论】:
ImageTk 不是 Python 标准库的一部分,而是 Python 图像库的一部分,它必须单独安装。此外,PIL 尚不支持 Python 3,因此上述代码仅适用于 Python 2.x。