Прямая обратная связь ImageGrab с tk canvas

Я пытаюсь создать окно, которое напрямую возвращает часть моего экрана. Ничего особо впечатляющего или полезного, но таким образом я могу быстро настроить положение этого экрана для реализации распознавания текста.

В любом случае, это тот фрагмент кода, который, по-видимому, работает без ошибок.

      class Overlay():
    def __init__(self):
        self.root = tk.Tk()
        self.root.title("Overlay")
        self.panel1 = tk.Canvas(self.root, bg="#fff", height=600, width=800)
        self.img = tk.PhotoImage(file = "test.png")
        self.panel1.create_image(300, 250, image=tk.PhotoImage(file = "test.png"))
        self.panel1.pack()

    def changeImage(self, img):
        self.panel1.itemconfigure(self.img, image=img)
        self.img = img
        self.panel1.update()

overlay = Overlay()

while True:
    screen =  np.array(ImageGrab.grab(bbox=(20,40,200,100)))
    #print(pytesseract.image_to_string(screen))
    overlay.changeImage(ImageTk.PhotoImage(ImageGrab.grab(bbox=(20,40,200,100))))
    if msvcrt.kbhit():
        if msvcrt.getch() == b'q':
            break
    overlay.root.update()

Проблема в том, что у меня полностью белое окно, и я не знаю, почему

0 ответов

Другие вопросы по тегам