2020-09-10 屏保(创建窗口来播放视频)
成功代码[三]
虽然是叫屏保,但是scr文件(屏保文件)不知道咋搞,将就一下
创建个无边框窗口,然后一帧一帧的播放,就是视频了啦
import cv2
import os
import random
import tkinter as tk
from PIL import ImageTk,Image
dir_path = "E://wallpaper//Live wallpaper//source"#动态壁纸文件夹
file_name = []#存文件名全称
for dir_name,a,file_name in os.walk(dir_path):#遍历
pass
length = len(file_name)#文件数量
number = random.randint(0,length)#随机生成一个数(随机屏保)
path = dir_path+"//"+file_name[number]#图片路径
win = tk.Tk()#创建窗口
win.overrideredirect(True)#创建无边框窗口
win.geometry("1920x1080+0+0")#窗口属性设置(1920x1080的大小,(x,y)=(0,0))
lable = tk.Label(win)#创建标签控件,放图片用
lable.place(relwidth=1, relheight=1, x=1, y=1)#标签控件位置设置relheight和rewidth为1时,控件占方向的全部,若为0.5则占方向的一半
v = cv2.VideoCapture(path)#读取视频
while True:
flag,frame = v.read()#读取视频帧,flag是标志,frame是视频帧
frame1 = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)#设置颜色为RGB,不然的话....嘿嘿
img = Image.fromarray(frame1)#忘了是干啥的了,略略略
img_tk = ImageTk.PhotoImage(image=img)#设置图片为图片帧
lable.config(image=img_tk)#显示图片
lable.image = img_tk#给标签显示图片
win.update()#更新窗口,显示下一帧图片