Как вывести изображение из массива numpy в tkinter? - PullRequest
0 голосов
/ 15 ноября 2018

Следующий короткий код предназначен для создания массива с numpy, преобразования его в объект изображения с помощью PIL, а затем вставки в холст в окне tkinter.

from tkinter import *
from PIL import Image

root = Tk()
array = np.ones((40,40))*150
img = Image.fromarray(array)
canvas = Canvas(root,width=300,height=300)
canvas.pack()
canvas.create_image(20,20,anchor=NW,image=img)

root.mainloop()

Это выдает ошибку:

TclError: image "<PIL.Image.Image image mode=F size=40x40 at 0x7F42D3BC3290>" doesn't exist

1 Ответ

0 голосов
/ 15 ноября 2018

Вам нужно использовать PhotoImage из ImageTk.

Сделайте это вместо:

import tkinter as tk
import numpy as np
from PIL import Image, ImageTk

root = tk.Tk()

array = np.ones((40,40))*150
img =  ImageTk.PhotoImage(image=Image.fromarray(array))

canvas = tk.Canvas(root,width=300,height=300)
canvas.pack()
canvas.create_image(20,20, anchor="nw", image=img)

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...