WinShot

轻量级 Windows 截图库

基于 Windows API 的纯 Python 截图解决方案,支持多种截图方式、后台截图、DPI 感知,无需任何第三方依赖。

纯 Python 实现 零依赖 支持后台截图 DPI 感知
查看源码

功能特性

📸

多种截图方式

支持 BitBlt、StretchBlt、PrintWindow 三种截图方式,满足不同场景需求。

👻

后台截图

支持对被遮挡或最小化的窗口进行截图,无需将窗口置于前台。

📐

区域截图

支持指定坐标和尺寸进行区域截图,灵活获取所需内容。

🔄

图像缩放

StretchBlt 方式支持截图时直接缩放到指定尺寸,高效便捷。

🖥️

DPI 感知

内置 DPI 感知设置,完美适配高分辨率显示器。

💾

BMP 保存

支持将截图数据直接保存为 BMP 格式图片文件。

快速开始

  1. 下载文件
    截图.py 文件放入你的项目目录中。
  2. 导入模块
    Python
    
                            
  3. 设置 DPI 感知(推荐)
    Python
    
                            
  4. 开始截图
    Python
    
                            

API 文档

核心截图函数

参数

  • x1, y1 int -
  • cx, cy int -
  • hwnd HWND -

返回值

返回二进制格式的 BGRA 图像数据(bytearray),包含 width 和 height 属性。

参数

  • wDest, hDest int -
  • xSrc, ySrc int -
  • wSrc, hSrc int -
  • hwnd HWND -

返回值

返回二进制格式的 BGRA 图像数据(bytearray),包含 width 和 height 属性。

参数

  • w, h int -
  • hwnd HWND -

返回值

返回二进制格式的 BGRA 图像数据(bytearray),包含 width 和 height 属性。

便捷函数

返回值

返回二进制格式的 BGRA 图像数据。

参数

  • hwnd HWND -

返回值

返回二进制格式的 BGRA 图像数据。

辅助函数

参数

  • hwnd HWND -

返回值

返回元组 (left, top, right, bottom),表示窗口的坐标位置。

参数

  • PROCESS_DPI_AWARENESS int -

返回值

返回 0 (S_OK) 表示成功,负数表示失败。

参数

  • bitmap_data bytes -
  • filepath str -
  • width, height int -

使用示例