python - 如何使 Tkinter 支持 PNG 透明度?

标签 python png transparency tkinter

我在 Tkinter 中放入了一个部分透明的 PNG 图像,我得到的就是这个

alt text

如何使右侧的黑色三角形变清晰? (就像它应该是的那样)

顺便说一句,这是 Windows 7 上的 python 2.6。

最佳答案

这是一个例子(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 channel 的 RGB。您可以使用您选择的图形程序或使用 PIL ( Python Imaging Library) 来检查:

import Image
im = Image.open("button.png")
print im.mode

这应该打印“RGBA”。如果没有,您必须确保 Alpha channel 与图像一起保存。您必须查阅您的图形程序手册以了解如何执行此操作。

关于python - 如何使 Tkinter 支持 PNG 透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270209/

相关文章:

internet-explorer - 在Internet Explorer 9(ie9)中具有透明度的缩放png文件具有锯齿状边缘

html - PNG图像在网站上不透明,无法找出原因

c - YUV422 中仅使用 Y 的透明度实现

iphone - UIView 透明度显示香肠是如何制作的!

c# - "Transparent"Windows 窗体在 DirectDraw Video Surface 前面时闪烁

python - Django休息框架: Paginaion in detail view breaks when default ordering field is nullable

python - 使用多个变量转换 Panda 文档

python - 如何在我想要并排查询列的地方执行此 mysql 查询?

python - 从 PostgreSQL 获取数据到 Django 并以 html 显示

java - 在 Java 中将 png 文件作为二维整数数组输入