2010-07-17 121 views

Respuesta

16

He aquí un ejemplo (el archivo example.png PNG tiene un montón de transparencia en diferentes lugares):

 
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() 

Es necesario asegurarse de que la imagen ha sido almacenada como RGBA - RGB con un canal alfa. Puede comprobar que el uso de un programa de gráficos de su elección, o el uso de PIL (Python Imaging Library):

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

Esto debería imprimir "RGBA". De lo contrario, tendrás que asegurarte de que el canal alfa se guarda con la imagen. Deberá consultar el manual de su programa de gráficos para saber cómo hacerlo.

+9

Merece la pena señalar que 'ImageTk' no forma parte de la biblioteca estándar de Python, sino de la biblioteca de imágenes de Python, que debe instalarse por separado. Además, PIL aún no tiene soporte para Python 3, por lo que el código anterior solo funcionará en Python 2.x. – fbmd

+1

@fbmd: buenos comentarios. Aquí hay una publicación relacionada: http://stackoverflow.com/questions/3896286/image-library-for-python-3 –

+0

Si te gusta el comentario, siempre puedes votar. ;-) – fbmd

Cuestiones relacionadas