如何在全局数组中附加图片?

时间:2019-05-01 06:23:03

标签: python tkinter

我正在尝试将图像添加到数组中,并希望使用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 :(得分:0)

我不知道您为什么尝试使用numpynp.append()。但是,bro​​blem是如此基础,您甚至都不必问。

您必须先创建数组

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])