Попробуйте выполнить некоторую обработку изображения, загрузите изображение для отображения на графике, но ничего не отображается. Win10 / Python 3.7.6 / PySimple GUI 4.16.0 / Numpy 1.18.1
I Загрузить изображение с помощью PIL.Image, преобразовать его в массив numpy, затем в base64, DrawImage в Graph, но ничего не показывает. Я работал над этим несколько раз, и все в порядке. проверил пару часов, но ничего не помогло. Может ли кто-нибудь помочь мне выяснить, где я пропустил или ошибся?
Что-то, что я нашел,
- im open, im.show () OK
- im.shape правильно, например (200, 150, 3) для изображения 150 (ширина) x 200 (высота) x RGB.
- im_np показывает разные данные, кажется, что все в порядке.
- im_64 показано строка байтов
- draw имеет значение None, это должен быть идентификатор.
- с параметром имени файла, установленным для DrawingImage, все в порядке
Мне нужно использовать numpy для некоторого процесса обработки изображений здесь, поэтому требуется преобразование.
import base64
import numpy as np
import PySimpleGUI as sg
from PIL import Image
filename = 'D:/Disk.png'
im = Image.open(filename)
width, height = im.size
im_np = np.array(im) # It is necesary for future process
im_64 = base64.b64encode(im_np)
def Graph(key):
return sg.Graph(im.size, graph_bottom_left=(0, 0),
graph_top_right=(width, height), key=key)
layout = [[Graph('GRAPH')]]
window = sg.Window('Graph', layout=layout, finalize=True)
draw = window.FindElement('GRAPH').DrawImage(
data=im_64, location=(width/2, height/2)) # It failed
# filename=filename, location=(width/2, height/2)) # It working well
while True:
event, values = window.read()
if event == None:
break
window.close()