Как добавить изображение в глобальный массив? - PullRequest
0 голосов
/ 01 мая 2019

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

from tkinter import *
import numpy as np

app=Tk()
app.title("Slideshow")
frame= Canvas (bg='black', height=600, width=1000)
global img
img1 = np.append(img,PhotoImage(file='images/1.png'))
frame.create_image(800,50,anchor=NE,image=img1)

frame.pack()
app.mainloop()

Ошибка, с которой я сталкиваюсь:

Traceback (most recent call last):
  File "C:/Users/Maha Waqar/PycharmProjects/SlideShow/1st.py", line 10, in <module>
    img1 = np.append(im,PhotoImage(file='images/1.png'))
NameError: name 'img' is not defined

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

1 Ответ

0 голосов
/ 01 мая 2019

Я не знаю, почему вы пытаетесь использовать numpy и np.append(). Но проблема - это основа, которую даже не стоит спрашивать.

Сначала нужно создать массив

img = np.array(PhotoImage)

и тогда вы можете добавить

img1 = np.append(img, ...)

Но есть следующая проблема - вы не можете использовать массив с create_image(). Вы должны использовать одно изображение.

img = np. array()

single_image = PhotoImage(file='images/1.png')

img1 = np.append(img, single_image)

frame.create_image(..., image=single_image)

Вместо numpy вы можете использовать стандартный список

img_list = []

single_image = PhotoImage(file='images/1.png')

img_list.append(single_image)

frame.create_image(..., image=single_image)

или используйте индекс для получения изображения из списка - т.е. img_list[-1] дает последнее изображение из списка

img_list = []

img_list.append(PhotoImage(file='images/1.png'))

frame.create_image(..., image=img_list[-1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...