Python PIL ImageTk. PhotoImage () дает мне ошибку шины?

Таким образом, я выполняю python 2.6 на MacBook Pro и пытаюсь написать код в Python для отображения изображения из файла в маркировке на tkinter gui. Изображение называют image.png. Прогоны программы без ошибок, когда я использую этот код

i = Image.open("image.png")

но когда я делаю этот код (я добавляю одну строку):

i = Image.open("image.png")
photo = ImageTk.PhotoImage(i)

Программа разрушит и скажет "Ошибку шины" в командной строке. Я даже не знаю то, что это означает. Я думал бы, что PIL установлен правильно, начиная с работ Изображения, но то, что ImageTk не работает, озадачивает меня. Кто-либо может сказать мне, что могло бы вызывать эту Ошибку шины?

Править: Хорошо я сделал новую программу для тестирования ошибки далее. Вот точный скрипт, который я запустил:

import Image
import ImageTk

i = Image.open("image.png")
photo = ImageTk.PhotoImage(i)

Теперь вместо того, чтобы получить "Ошибку шины", это - мой traceback.

Traceback (most recent call last):
  File "imageTest.py", line 5, in <module>
    photo = ImageTk.PhotoImage(i)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/ImageTk.py", line 113, in __init__
    self.__photo = apply(Tkinter.PhotoImage, (), kw)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 3285, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 3226, in __init__
    raise RuntimeError, 'Too early to create image'
RuntimeError: Too early to create image
Exception AttributeError: "PhotoImage instance has no attribute '_PhotoImage__photo'" in <bound method PhotoImage.__del__ of <ImageTk.PhotoImage instance at 0x3c7a30>> ignored
7
задан perimosocordiae 23 April 2014 в 22:14
поделиться

1 ответ

Я не знаю об ошибке шины, но вам нужно создать окно Tk, прежде чем вы сможете вызвать PhotoImage. Этот сценарий работает для меня-

import Image 
import ImageTk
from Tkinter import Tk

window = Tk()
i = Image.open("image.png") 
photo = ImageTk.PhotoImage(i)
6
ответ дан 6 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: