【问题标题】:Display video size on label tkinter在标签 tkinter 上显示视频大小
【发布时间】: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


【解决方案1】:

您可以在Image.fromarray(image)的返回图片上调用resize()

frame_image = ImageTk.PhotoImage(Image.fromarray(image).resize((100,100)))

【讨论】:

  • thannnnnkss 一个战利品
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多