You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

pyqt-screen-capture

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pyqt-screen-capture

A screen capture utility that works with PyQt6, PySide6, PyQt5, PySide2, PyQt4, and PySide.

0.1.0a1
pipPyPI
Maintainers
1

PyQt Screen Capture

A screen capture utility that works with PyQt6, PySide6, PyQt5, PySide2, and PySide.

Features

  • Cross-platform (Windows, Linux, macOS, etc.)
  • Supports Python 2+
  • Automatically detects available Qt bindings
  • Memory-efficient screen capture using shared ndarrays in OpenCV-compatible HWC BGRX 8888 format
  • Simple generator-based interface

Installation

Make sure you have PyQt6, PySide6, PyQt5, PySide2, or PySide installed.

Then install pyqt-screen-capture:

pip install pyqt-screen-capture

Usage

Capture single frame

from pyqt_screen_capture import hwc_bgrx_8888_screen_capturer

screen_capturer = hwc_bgrx_8888_screen_capturer()

# Get next screen frame (as numpy array in HWC BGRX 8888 format)
frame = next(screen_capturer)

# Example: Convert to RGB and display with matplotlib
import matplotlib.pyplot as plt

plt.imshow(frame[:, :, [2, 1, 0]])  # Convert BGR to RGB
plt.show()

Continuous capture

import cv2

from pyqt_screen_capture import hwc_bgrx_8888_screen_capturer

for frame in hwc_bgrx_8888_screen_capturer():
    # Process frame (OpenCV, etc.)
    cv2.imshow('Screen Capture', frame[:, :, :3])  # Use BGR channels only
    key = cv2.waitKey()
    if key & 0xFF == ord('q'):
        break

Caveat

You MUST use the shared ndarray between yields, as the underlying buffer is freed afterward:

from pyqt_screen_capture import hwc_bgrx_8888_screen_capturer
screen_capturer = hwc_bgrx_8888_screen_capturer()
r1 = next(screen_capturer)
# OK to use r1 here
r2 = next(screen_capturer)
# OK to use r2 here, DO NOT USE r1 HERE!

Acknowledgments

This project modifies code automatically determining which Qt package to use from pyqtgraph, available under the MIT License

Contributing

Contributions are welcome! Please submit pull requests or open issues on GitHub.

License

This project is licensed under the MIT License. See the LICENSE file for details.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts