【发布时间】:2020-11-17 16:47:08
【问题描述】:
以下代码在标签上显示视频。但是,问题在于,它以非常缩放(大)的方式显示。我想调整它的大小以在标签上正确显示。当我使用选项 image=image.resize() 时,出现错误 ValueError: cannot resize this array: it does not own its data
import tkinter as tk, threading
import imageio
from PIL import Image, ImageTk
video_name = "e.mp4"
video = imageio.get_reader(video_name)
#video = video.resize(20,20)
def stream(label):
for image in video.iter_data():
frame_image = ImageTk.PhotoImage(Image.fromarray(image))
label.config(image=frame_image)
label.image = frame_image
root = tk.Tk()
my_label = tk.Label(root, width=500,height=500)
my_label.place(x=0,y=0)
thread = threading.Thread(target=stream, args=(my_label,))
thread.daemon = 1
thread.start()
root.mainloop()
【问题讨论】:
-
尝试 frame_image.resize 而不是视频。
-
@Atlas435" AttributeError: 'PhotoImage' 对象没有属性 'resize"
标签: multithreading tkinter python-imaging-library