欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Python編寫簡(jiǎn)易的錄制屏幕小工具

 更新時(shí)間:2022年08月01日 09:24:41   作者:Sir?老王  
這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言編寫一個(gè)簡(jiǎn)易的錄制屏幕小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下

由于最近測(cè)試需要錄制系統(tǒng)界面的操作過(guò)程,因?yàn)槎际侨恋牟僮鳎杂胮ython做一個(gè)簡(jiǎn)單的錄屏小工具。

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

1、準(zhǔn)備

開(kāi)始之前我們還是按照以往的方式介紹一下使用到的第三方的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

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

2、代碼

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

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

is_running?=?True

創(chuàng)建錄制過(guò)程生成函數(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)?+?'秒后開(kāi)始錄制!')
????????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)聽(tīng)函數(shù)press_keyboard,監(jiān)聽(tīng)輸入,若是按下esc鍵則改變運(yùn)行狀態(tài)。

is_running=False
def?press_keyboard(key):
????'''
????鍵盤監(jiān)聽(tīng)函數(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,啟動(dòng)則執(zhí)行屏幕錄制。

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

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

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

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

到此這篇關(guān)于利用Python編寫簡(jiǎn)易的錄制屏幕小工具的文章就介紹到這了,更多相關(guān)Python錄制屏幕工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中Class類用法實(shí)例分析

    Python中Class類用法實(shí)例分析

    這篇文章主要介紹了Python中Class類用法,以實(shí)例形式較為詳細(xì)的分析了Python中類的定義及相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Python裝飾器基礎(chǔ)概念與用法詳解

    Python裝飾器基礎(chǔ)概念與用法詳解

    這篇文章主要介紹了Python裝飾器基礎(chǔ)概念與用法,結(jié)合實(shí)例形式詳細(xì)分析了Python裝飾器的概念、功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • Python中 map()函數(shù)的用法詳解

    Python中 map()函數(shù)的用法詳解

    map( )函數(shù)在算法題目里面經(jīng)常出現(xiàn),map( )會(huì)根據(jù)提供的函數(shù)對(duì)指定序列做映射,在寫返回值等需要轉(zhuǎn)換的時(shí)候比較常用。這篇文章主要介紹了Python中 map()的用法,需要的朋友可以參考下
    2018-07-07
  • 詳解python string類型 bytes類型 bytearray類型

    詳解python string類型 bytes類型 bytearray類型

    這篇文章主要介紹了python string類型 bytes類型 bytearray類型,需要的朋友可以參考下
    2017-12-12
  • Python的Random庫(kù)的使用方法詳解

    Python的Random庫(kù)的使用方法詳解

    這篇文章主要介紹了Python的Random庫(kù)的使用方法詳解,random庫(kù)是使用隨機(jī)數(shù)的Python標(biāo)準(zhǔn)庫(kù),python中用于生成偽隨機(jī)數(shù)的函數(shù)庫(kù)是random,需要的朋友可以參考下
    2023-07-07
  • Python抓取京東圖書評(píng)論數(shù)據(jù)

    Python抓取京東圖書評(píng)論數(shù)據(jù)

    最近接了個(gè)項(xiàng)目,需要抓取京東圖書的評(píng)論,把代碼放出來(lái)給大家分享下,希望能有所幫助
    2014-08-08
  • 如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

    如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析

    這篇文章主要介紹了如何使用Python對(duì)NetCDF數(shù)據(jù)做空間相關(guān)分析,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • Python中對(duì)象的引用與復(fù)制的使用

    Python中對(duì)象的引用與復(fù)制的使用

    引用和復(fù)制是Python處理對(duì)象的重要概念,本文主要介紹了Python中對(duì)象的引用與復(fù)制的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12
  • Python中魔術(shù)方法的定義及一些常用方法

    Python中魔術(shù)方法的定義及一些常用方法

    所有以雙下劃線__包起來(lái)的方法,統(tǒng)稱為Magic Method(魔術(shù)方法),它是一種的特殊方法,這篇文章主要給大家介紹了關(guān)于Python中魔術(shù)方法的定義及一些常用方法,需要的朋友可以參考下
    2024-02-02
  • python中將一個(gè)全部為int的list 轉(zhuǎn)化為str的list方法

    python中將一個(gè)全部為int的list 轉(zhuǎn)化為str的list方法

    下面小編就為大家分享一篇python中將一個(gè)全部為int的list 轉(zhuǎn)化為str的list方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04

最新評(píng)論