admin管理员组文章数量:1558697
import pyautogui
import numpy
import cv2
import time
import mss
from PIL import ImageGrab
sct = mss.mss(mon=1, optimize=True)
def get_screen_by_grab():
start = time.time() # 记录开始时间
img = ImageGrab.grab((0, 0, 800, 600)) # 截图
img = cv2.cvtColor(numpy.array(img), cv2.COLOR_RGB2BGR) # 转换色值
end = time.time() # 记录结束时间
print(end - start) # 打印截图消耗时间
cv2.imshow('test', img) # 显示截图
cv2.waitKey(0) # 等待结束
def get_screen_by_autogui():
start = time.time()
img = pyautogui.screenshot(region=[0, 0, 800, 600]) # 截图
img = cv2.cvtColor(numpy.array(img), cv2.COLOR_RGB2BGR) # 转换色值
end = time.time()
print(end - start)
cv2.imshow('test', img)
cv2.waitKey(0)
def get_screen_by_mss():
start = time.time()
img = sct.grab({'top': 0, 'left': 0, 'width': 800, 'height': 600}) # 截图
img = cv2.cvtColor(numpy.array(img), cv2.COLOR_RGB2BGR) # 转换色值
end = time.time()
print(end - start)
cv2.imshow('test', img)
cv2.waitKey(0)
get_screen_by_grab()
get_screen_by_autogui()
get_screen_by_mss()
记录使用python屏幕截图的三种方案
对比两种方案的性能:
grad截图40ms左右
pyautogui截图100ms左右
mss截图20ms左右
版权声明:本文标题:Python屏幕截图方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727402326a1112997.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论