вставить изображение в текстовый виджет без использования imageTK - PullRequest
0 голосов
/ 09 декабря 2011

К сожалению, я работаю под OSX-машиной, где я не смог установить imageTK ...

Мне нужно вставить изображение, взятое из словаря изображений, сохраненное таким образом:

i = open(filename, 'rb')
i.seek(0)
w = i.read()
i.close()
allicons[d]=w

так что во время вставки у меня нет имени файла, только dict.

с imageTk, это работает:

c = cStringIO.StringIO()
c.write(allicons[key])
c.seek(0)
im = Image.open(c)
iconimage=ImageTk.PhotoImage(im)
config.text.image_create(INSERT, image=iconimage)

но я не знаю, как это сделать без imageTk. Просто с помощью «Импортировать изображение» я попытался:

im = Image.open(c)
iconimage = PhotoImage(im)

и распознается иконка (объект TkInter.PhotoImage ...), но вставив его, я получаю «Ошибка типа: str , возвращенная не строка (экземпляр типа) ... в image_create * self._options (cnf, kw))»

... любая помощь действительно ценится, спасибо!

1020 * Alessandro *

1 Ответ

0 голосов
/ 16 декабря 2011

PhotoImage имеет опцию «данные». Вы можете предоставить ему данные gif, которые были закодированы с использованием base64. что-то вроде:

dat = base64.encodestring(allicons[key])
pic = PhotoImage(data=dat)
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...