2010-07-17 13 views

risposta

16

Ecco un esempio (il file PNG example.png ha un sacco di trasparenza in luoghi diversi):

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

È necessario assicurarsi che l'immagine è stata memorizzata come RGBA - RGB con un canale alfa. È possibile verificare la presenza di che l'utilizzo di un programma di grafica a scelta, oppure utilizzando PIL (Python Imaging Library):

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

Questo dovrebbe stampare "RGBA". In caso contrario, dovrai assicurarti che il canale alfa venga salvato con l'immagine. Dovrai consultare il manuale del tuo programma di grafica per sapere come farlo.

+9

Mi potrebbe essere degno di nota il fatto che 'ImageTk' non fa parte della libreria standard Python, ma della libreria di immagini Python, che deve essere installata separatamente. Inoltre, PIL non ha ancora il supporto per Python 3, quindi il codice sopra funzionerà solo su Python 2.x. – fbmd

+1

@fbmd: buoni commenti. Ecco un post correlato: http://stackoverflow.com/questions/3896286/image-library-for-python-3 –

+0

Se ti piace il commento, puoi sempre andare avanti. ;-) – fbmd

Problemi correlati