【发布时间】:2018-06-27 03:26:05
【问题描述】:
实际上我想做的是:
-
使用 Tkinter 按钮:
1.1。开始录屏
1.2。停止录屏
-
在录制过程中不显示正在同时录制的视频。
这是我的代码:
import tkinter as tk
import cv2
import numpy as np
from PIL import ImageGrab
window = tk.Tk()
window.title('ScreenVideo')
window.geometry('350x300')
#ScreenVideo
def StartS():
fourcc = cv2.VideoWriter_fourcc(*'XVID')
vid=cv2.VideoWriter("c:\\IQOutput\\rec.avi", fourcc, 10, (990,690))
while(True):
img = ImageGrab.grab(bbox=(10,10,1000,700))
img_np=np.array(img)
frame=cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
vid.write(frame)
cv2.imshow("frame", frame)
key=cv2.waitKey(1)
if key==27:
break
vid.release()
cv2.destroyAllWindows()
bstarts = tk.Button(window, text='StartRe', font=('Arial', 8), bg='light pink', width=5, height=1, command=StartS)
bstarts.place(x=280, y=80, anchor='nw')
bstops = tk.Button(window, text='StopRe', font=('Arial', 8), bg='light pink', width=5, height=1, command=StopRe)
bstops.place(x=280, y=120, anchor='nw')
上面的代码有以下选项:
(一)。当用户单击 Bstarts 按钮时开始录制。
(b)。在“框架”窗口中录制时同时显示屏幕。
(c)。当用户在 PC 上按“esc”键时停止录制。
(d)。将最终视频(命名为:“rec.avi”)保存在路径 C:\IQOutput\ 中。
但我希望这个程序有以下选项:
(一)。当用户点击 Bstarts 按钮时,它开始记录屏幕(已经开始工作了)。
(b)。录屏时不能同时显示屏幕(如何在录屏时移除或隐藏“imshow”相关功能?)
(c)。当用户单击 Bstops 按钮时,它会停止录制屏幕。
(d)。它将名为“rec.avi”的最终视频保存在路径c:\IQOutput\中。
【问题讨论】:
标签: python python-3.x video tkinter cv2