2010-07-17 1 views
13

я положил в частично прозрачный PNG изображения в Tkinter и все, что я получаю этоКак сделать поддержку Tkinter прозрачной PNG?

alt text http://i26.tinypic.com/aelh82.jpg

Как сделать темный треугольник на право ясно? (например, это должно быть)

Это python 2.6 на Windows 7, кстати.

+0

Можете ли вы подтвердить, что изображение появляется с прозрачностью в другой программе? – Nathan

ответ

16

Вот пример (файл example.png 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 - RGB с альфа-каналом. Вы можете проверить, что с помощью графической программы по вашему выбору, или с помощью PIL (Python Imaging Library):

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

Это должно напечатать «RGBA». Если нет, вам нужно убедиться, что альфа-канал сохранен вместе с изображением. Вам нужно проконсультироваться с руководством по графической программе, как это сделать.

+9

Могу ли я отметить, что 'ImageTk' не является частью стандартной библиотеки Python, а библиотеки изображений Python, которая должна быть установлена ​​отдельно. Кроме того, PIL еще не поддерживает Python 3, поэтому приведенный выше код будет работать только на Python 2.x. – fbmd

+1

@fbmd: Хорошие комментарии. Вот связанная с этим публикация: http://stackoverflow.com/questions/3896286/image-library-for-python-3 –

+0

Если вам нравится этот комментарий, вы всегда можете выдвигать его. ;-) – fbmd

 Смежные вопросы

  • Нет связанных вопросов^_^