日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

利用Python編寫簡易的錄制屏幕小工具_(dá)python

作者:Sir?老王 ? 更新時間: 2022-09-24 編程語言

由于最近測試需要錄制系統(tǒng)界面的操作過程,因為都是全屏的操作,所以用python做一個簡單的錄屏小工具。

實現(xiàn)過程也是比較簡單,就是通過對屏幕操作進(jìn)行不斷的截圖,最后將截圖合成一個操作視頻的過程。由于我們只是做簡單的截屏功能,并沒有加入音頻效果。

1、準(zhǔn)備

開始之前我們還是按照以往的方式介紹一下使用到的第三方的python模塊。

from?PIL?import?ImageGrab

import?numpy?as?np

import?cv2

import?datetime

from?pynput?import?keyboard

import?threading

from?loguru?import?logger

import?time

由于實現(xiàn)過程比較少,這里我們不再創(chuàng)建標(biāo)準(zhǔn)的class實現(xiàn),直接在.py文件寫相關(guān)的函數(shù)來實現(xiàn)。

2、代碼

實現(xiàn)過程主要是通過兩個函數(shù)來實現(xiàn)的,一個是實現(xiàn)具體的屏幕截圖操作,并且將其寫入視頻。另一個則是用來監(jiān)聽鍵盤的輸入,若是按下esc鍵時則退出當(dāng)前的錄制操作。

初始化一個變量作為停止標(biāo)志。

is_running?=?True

創(chuàng)建錄制過程生成函數(shù)generate_video,用以生成錄制視頻。

def?generate_video():
????'''
????生成錄制視頻函數(shù)
????:return:
????'''
????file_name?=?datetime.datetime.now().strftime('%Y-%m-%d?%H-%M-%S')
????screen?=?ImageGrab.grab()
????width,?height?=?screen.size
????fourcc?=?cv2.VideoWriter_fourcc(*'XVID')
????video?=?cv2.VideoWriter('%s.avi'?%?file_name,?fourcc,?20,?(width,?height))
????for?n?in?range(3):
????????logger.debug(str(3?-?n)?+?'秒后開始錄制!')
????????time.sleep(1)
????while?True:
????????im1?=?ImageGrab.grab()
????????im2?=?cv2.cvtColor(np.array(im1),?cv2.COLOR_RGB2BGR)
????????video.write(im2)
????????if?is_running?is?False:
????????????logger.debug('屏幕錄制已經(jīng)結(jié)束!')
????????????break
????video.release()

創(chuàng)建鍵盤監(jiān)聽函數(shù)press_keyboard,監(jiān)聽輸入,若是按下esc鍵則改變運行狀態(tài)。

is_running=False
def?press_keyboard(key):
????'''
????鍵盤監(jiān)聽函數(shù)
????:param?key:
????:return:
????'''
????global?is_running
????if?key?==?keyboard.Key.esc:
????????logger.debug('ESC已經(jīng)被按下,馬上結(jié)束錄制!')
????????is_running?=?False
????????return?False

執(zhí)行主函數(shù)main,啟動則執(zhí)行屏幕錄制。

if?__name__?==?'__main__':
????thread_?=?threading.Thread(target=generate_video)
????thread_.start()
????logger.debug('?開始進(jìn)入視頻錄制!')
????with?keyboard.Listener(on_press=press_keyboard)?as?listener:
????????listener.join()

最后,使用pyinstaller將其打包成exe的可執(zhí)行應(yīng)用,使用時直接雙擊打開即可開始錄制屏幕的操作過程。

pyinstaller?-i?.\video.ico?-Fw?.\test2.py

至此,錄制屏幕小工具就大功告成了。

原文鏈接:https://mp.weixin.qq.com/s/Dt0obCVDS9KN_K4uYxgpwQ

欄目分類
最近更新