Ошибка Python (tkinter): «CR C ошибка проверки» - PullRequest
3 голосов
/ 05 мая 2020

Я делаю маленькую GUI в python и хочу добавить кнопку с изображением. Итак, я следую тому, что здесь сказано: https://www.geeksforgeeks.org/python-add-image-on-a-tkinter-button/

Это дает:

downimage = PhotoImage(file = "Downloadimage.png")
Dowloadbutton = Button(window, image=downimage, font=("Source Code Pro Light", 20), bg='black', fg='lime', command=start)
Dowloadbutton.pack()

Как сказано в ссылке. Но тут происходит маг c:

Traceback (most recent call last):
  File "Keylogger.pyw", line 28, in <module>
    downimage = PhotoImage(file = "Downloadimage.png")
  File "C:\Users\Elève\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 3545, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "C:\Users\Elève\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 3501, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: CRC check failed

Строка 28 соответствует downimage = PhotoImage(file = "Downloadimage.png"). Все остальное упаковано и появляется, но моя кнопка не работает и выдает эту ошибку. Я не знаю, что это значит, когда я пытаюсь выполнить поиск на inte rnet, появляется много результатов, не связанных с tkinter, кажется, это не обычная, но все же известная ошибка.

(Я использую последнюю версию как python, так и tkinter)

Если вы можете мне помочь, большое вам спасибо! Хорошего дня;)

1 Ответ

6 голосов
/ 05 мая 2020

В формате png, CRC код здесь.

(пример изображения png) введите описание изображения здесь

Он был зашифрован (CRC32) фрагментом изображения [0]. Мне немного сложно express это.

Но причиной вашей проблемы является ширина и высота изображения неправильная (в основном). Ваш размер изображения был изменен.

Фактически, если вы поместите свое изображение в linux, изображение не может быть открыто нормально. В windows средстве просмотра изображений по умолчанию система проигнорирует ошибку CRC контрольной суммы, и вы сможете открыть его.

Как решить вашу проблему?

  1. Измените это изображение в байтах.
  2. Используйте новое правильное изображение.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...