1. 程式人生 > >Python錄屏(無聲)

Python錄屏(無聲)

Python3.7

用到的模組:pillow,opencv-python

PIL就是pillow

from PIL import ImageGrab
import cv2

p = ImageGrab.grab() # 獲得當前螢幕資訊

width,high=p.size # 獲得當前螢幕的大小
fourcc = cv2.VideoWriter_fourcc(*'XVID') # 錄屏檔案的編碼格式
video = cv2.VideoWriter('e:/test.avi', fourcc, 16, (width,high)) # 輸出檔案命名為test.avi,位置在E盤根目錄,幀率為16,這裡是最多隻能到16幀,可以自己設定

while True:
    im = ImageGrab.grab() # 獲取當前螢幕資訊和入口等(每次執行到這裡才能獲取一幀畫面)
    imm=cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR) # 轉為opencv的BGR格式
    video.write(imm)    # 寫入快取
    cv2.imshow('imm', imm)  # 播放錄製的畫面  

關於詳細的我現在也不是很清楚

如果只需要螢幕的畫面,不要儲存,就只要以下部分

from PIL import ImageGrab
import cv2

while True:
    im = ImageGrab.grab() # 獲取當前螢幕資訊和入口等(每次執行到這裡才能獲取一幀畫面)
    imm=cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR) # 轉為opencv的BGR格式
    cv2.imshow('imm', imm)  # 播放錄製的畫面  

得到畫面後可以進行畫面處理,然後根據我之前寫的方法可以實現在12864上顯示電腦實時畫面了,就是卡了些,我實驗只有7幀左右