欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Python如何實現(xiàn)屏幕錄制功能-創(chuàng)新互聯(lián)

這篇文章主要介紹Python如何實現(xiàn)屏幕錄制功能,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

公司主營業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出曹縣免費做網(wǎng)站回饋大家。

Python實現(xiàn)屏幕錄制功能的示例:

"""python + opencv 實現(xiàn)屏幕錄制_by-_Zjh_"""
from PIL import ImageGrab
import numpy as np
import cv2
p = ImageGrab.grab()#獲得當(dāng)前屏幕
k=np.zeros((200,200),np.uint8)
a,b=p.size#獲得當(dāng)前屏幕的大小
fourcc = cv2.VideoWriter_fourcc(*'XVID')#編碼格式
video = cv2.VideoWriter('test.avi', fourcc, 16, (a, b))#輸出文件命名為test.mp4,幀率為16,可以自己設(shè)置
while True:
 im = ImageGrab.grab()
 imm=cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR)#轉(zhuǎn)為opencv的BGR格式
 video.write(imm)
 cv2.imshow('imm', k)
 if cv2.waitKey(1) & 0xFF == ord('q'):
  break
video.release()
cv2.destroyAllWindows()

在停止錄制的時候我自己采用的是opencv的q鍵盤退出,實際上還是會有個黑框彈出來,如果有更好的退出錄制方式請留下您的建議,本次還有個不足的地方是沒有增加錄制聲音的功能。最近事情太多了,等放假了出一個完整版的GUI程序。好了今天就先到這了,快要考線性系統(tǒng)這門課了,得開始復(fù)習(xí)了

最近接觸了 pynput 這個強大的三方庫,可以全局監(jiān)聽鍵盤、鼠標(biāo)事件。把以前的屏幕錄制的程序改進(jìn)一下!請忽略以前的程序,直接看這個!

"""
python 屏幕錄制改進(jìn)版,無opencv黑框顯示!
@zhou 2020/1/29_
"""
from PIL import ImageGrab
import numpy as np
import cv2
import datetime
from pynput import keyboard
import threading
flag=False #停止標(biāo)志位
def video_record():
 """
 屏幕錄制!
 :return:
 """
 name = datetime.datetime.now().strftime('%Y-%m-%d %H-%M-%S') #當(dāng)前的時間
 p = ImageGrab.grab() # 獲得當(dāng)前屏幕
 a, b = p.size # 獲得當(dāng)前屏幕的大小
 fourcc = cv2.VideoWriter_fourcc(*'XVID') # 編碼格式
 video = cv2.VideoWriter('%s.avi'%name, fourcc, 20, (a, b)) # 輸出文件命名為test.mp4,幀率為16,可以自己設(shè)置
 while True:
  im = ImageGrab.grab()
  imm=cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR)#轉(zhuǎn)為opencv的BGR格式
  video.write(imm)
  if flag:
   print("錄制結(jié)束!")
   break
 video.release()
def on_press(key):
 """
 鍵盤監(jiān)聽事件!!!
 :param key:
 :return:
 """
 #print(key)
 global flag
 if key == keyboard.Key.esc:
  flag=True
  print("stop monitor!")
  return False #返回False,鍵盤監(jiān)聽結(jié)束!
if __name__=='__main__':
 th=threading.Thread(target=video_record)
 th.start()
 with keyboard.Listener(on_press=on_press) as listener:
  listener.join()

現(xiàn)在錄制就不用之前那個黑框了,按 esc按鍵 直接停止錄制!

PS:在通過代碼給大家介紹下python 實現(xiàn)屏幕錄制

PIL 即pollow 的安裝命令如下:

pip install pillow

其中cv2的安裝是下面這條命令

pip install opencv-python

代碼實現(xiàn):

# coding: utf-8
from PIL import ImageGrab
import numpy as np
import cv2
fps = 20
start = 3 # 延時錄制
end = 15 # 自動結(jié)束時間
curScreen = ImageGrab.grab() # 獲取屏幕對象
height, width = curScreen.size
video = cv2.VideoWriter('video02.avi', cv2.VideoWriter_fourcc(*'XVID'), fps, (height, width))
imageNum = 0
while True:
  imageNum += 1
  captureImage = ImageGrab.grab() # 抓取屏幕
  frame = cv2.cvtColor(np.array(captureImage), cv2.COLOR_RGB2BGR)
  # 顯示無圖像的窗口
  cv2.imshow('capturing', np.zeros((1, 255), np.uint8))
  # 控制窗口顯示位置,方便通過按鍵方式退出
  cv2.moveWindow('capturing', height - 100, width - 100) 
  if imageNum > fps * start:
    video.write(frame)
  # 退出條件  
  if cv2.waitKey(50) == ord('q') or imageNum > fps * end:
    break
video.release()
cv2.destroyAllWindows()

以上是“Python如何實現(xiàn)屏幕錄制功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

名稱欄目:Python如何實現(xiàn)屏幕錄制功能-創(chuàng)新互聯(lián)
文章起源:http://chinadenli.net/article46/digceg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站網(wǎng)站改版品牌網(wǎng)站設(shè)計ChatGPT網(wǎng)站設(shè)計品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作