zbl
is a Rust and Python library for screen/window capturing on Windows. It provides an interface
to Windows.Graphics.Capture
API with a focus on simplifying integrating computer vision applications for Windows Desktop apps.
This library is in early development stage. This means that it's only verified to work for a 'happy path' scenarios - beware of bugs!
pip install zbl
Alternatively, you can install suitable wheel from releases page.
from zbl import Capture
with Capture(window_name='visual studio code') as cap:
# grab a single frame (numpy.ndarray) and print its shape
print(cap.grab().shape)
The snippet above will capture a window which title contains the string visual studio code
,
grab one frame and print its shape.
See Capture for other API methods.
To run an example using OpenCV's highgui
:
- Install
opencv-python
- Run
python -m zbl --display-id 0
See examples. Note: if you are getting OpenCV build errors when building the example, check out how to build OpenCV rust bindings.
Both are very slow at the time of writing. mss
tops at 30-50 fps in a tight loop, pyautogui
is
even slower than that. zbl
is able to capture an order of magnitude faster (at 500-700 fps). This allows a lot more time for the actual processing.
zbl
is heavily inspired by screenshot-rs.