환경
윈도우 10 64비트
파이썬 3.8
MSS 6.1.0
머리말
python-mss
크로스 플랫폼을 지원하고 순수 python
언어 .
설치하다
명령을 사용하여 pip
설치
pip install mss
python-mss
명령줄 도구도 제공되며 이를 mss
사용하여 . 기본값은 전체 화면입니다.
사용 가능한 다른 매개변수는 mss -h
다음을 통해
$ mss -h
usage: mss [-h] [-c COORDINATES] [-l {0,1,2,3,4,5,6,7,8,9}] [-m MONITOR]
[-o OUTPUT] [-q] [-v]
optional arguments:
-h, --help show this help message and exit
-c COORDINATES, --coordinates COORDINATES
the part of the screen to capture: top, left, width,
height
-l {0,1,2,3,4,5,6,7,8,9}, --level {0,1,2,3,4,5,6,7,8,9}
the PNG compression level
-m MONITOR, --monitor MONITOR
the monitor to screen shot
-o OUTPUT, --output OUTPUT
the output file name
-q, --quiet do not print created files
-v, --version show program's version number and exit
현실적인
두 부분의 내용을 살펴 보겠습니다. 첫 번째는 기본 기능이기도 한 스크린 샷입니다.
# 导入模块
import mss
# 实例化对象
with mss.mss() as sct:
# 通过参数output指定保存的文件名
sct.shot(output='output.png')
shot
메서드에 매개변수도 있으므로 callback
콜백을 사용하는 것이 편리합니다.
import mss
def fun_callback(filename):
# 作为示例,打印下截取的文件名
print(filename)
with mss.mss() as sct:
# 通过参数output指定保存的文件名
filename = sct.shot(output='output.png', callback=fun_callback)
창의 일부를 가로채는 경우
import mss
with mss.mss() as sct:
# 设置一个区域,top为距离屏幕左上角的垂直方向上的距离,left是水平方向的距离,后面2个分别是宽和高
monitor = {"top":50, "left":50, "width": 600, "height": 400}
image_sct = sct.grab(monitor)
# 转换成png保存起来
mss.tools.to_png(image_sct.rgb, image_sct.size, output="output.png")
mss
이미지 형식을 로 변환 해야 하는 경우 PIL
다음을 수행할 수 있습니다.
import mss
from PIL import Image
with mss.mss() as sct:
# 设置一个区域,top为距离屏幕左上角的垂直方向上的距离,left是水平方向的距离,后面2个分别是宽和高
monitor = {"top":50, "left":50, "width": 600, "height": 400}
image_sct = sct.grab(monitor)
image_pil = Image.frombytes('RGB', image_sct.size, image_sct.bgra, 'raw', 'BGRX')
image_pil.save('output_pil.png')
두 번째 예에서는 화면을 녹화하는 방법을 살펴보겠습니다. 여기, 당신은 그것을 사용해야합니다 opencv
, 그냥 코드를 봐
import mss
import cv2
import numpy as np
from PIL import Image
monitor = {"top":50, "left":50, "width": 600, "height": 400}
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
fps = 20
video = cv2.VideoWriter('output.avi', fourcc, fps, (600, 400))
with mss.mss() as sct:
# 设置一个区域,top为距离屏幕左上角的垂直方向上的距离,left是水平方向的距离,后面2个分别是宽和高
while True:
image_sct = sct.grab(monitor)
image_pil = Image.frombytes('RGB', image_sct.size, image_sct.bgra, 'raw', 'BGRX')
image_cv = np.array(image_pil)
video.write(image_cv)
if cv2.waitKey(25) & 0xFF == ord('q'):
break
video.release()
자세한 내용은 공식 링크 https://github.com/BoboTiG/python-mss를 참조하십시오.
Python 실용 모듈에 대한 주제
더 유용한 python
모듈을 다음으로 이동하십시오.
https://xugaoxiang.com/category/python/modules/