winuia-auto 截图全攻略(ToBitmap、Screenshot 与 CaptureToImage 详解)

在进行 Windows UI 自动化或 RPA 开发时,"截图"是一项非常高频的操作,它不仅用于生成测试报告、保存错误日志,更是实现图像识别(如图色定位、FindImageOnScreen)的核心基础。

在 winuia-auto 库中,截图方式丰富多样。本文将带你全面盘点 winuia-auto 的几大核心截图函数:ToBitmap、Screenshot 和 CaptureToImage,并区分控件级截图 与桌面级截图的正确打开方式。

一、 核心截图函数大盘点

方法 截图范围 返回值 是否支持离屏 典型用途
ToBitmap(x, y, w, h) 控件指定区域 Bitmap 对象 取决于实现 内存处理、找图
ToBitmap() 整个控件 Bitmap 对象 取决于实现 整窗转 Bitmap
CaptureToImage(...) 控件指定区域 直接保存文件 一般不支持 快速保存局部图
Screenshot(path, offscreen=True) 整个控件 直接保存文件 支持 整窗截图(含隐藏)
root.ToBitmap(...) 桌面指定区域 Bitmap 对象 - 屏幕级截图
FindImageOnScreen(...) - 匹配结果 - 截图后做图像识别

二、实际应用

复制代码
import winuia as auto
# 定义截图区域坐标
left, top, width, height = 100, 100, 400, 300


# 控件界面截图
window2 = auto.WindowControl(ClassName='Chrome_WidgetWin_1', RegexName='.*Google Chrome')
# 将控件截图指定区域并转成Bitmap
bitmap = window2.ToBitmap(left, top, width, height)
# 保存截图
window2.CaptureToImage(r'./region.png', left+width, top, width, height)

# 将控件截图保存成文件
window2.Screenshot("./control.png", offscreen=True)
# 将控件截图并转成Bitmap
bitmap = window2.ToBitmap()




# 桌面截图
root = auto.GetRootControl()
bitmap = root.ToBitmap(left, top, width, height)
# 验证截图, 将 Bitmap 转换为 PNG 格式的字节流,并用于屏幕找图验证
match_result1 = auto.FindImageOnScreen(bytes(bitmap.ToBytes('png')), confidence=0.85)
print(f'match_result1: {match_result1}')

# 保存截图
root.CaptureToImage(r'./region.png', left+width, top, width, height)

# 将桌面截图保存成文件
root.Screenshot("./control.png", offscreen=True)
相关推荐
天远数科1 小时前
零信任架构实战:基于天远柠檬查出险构建自动化二手车延保车况资质核验网关
运维·人工智能·架构·自动化
郝学胜-神的一滴1 小时前
金融数据分析实战:从数据清洗到策略回测,Python全链路落地
开发语言·python·程序人生·金融·数据挖掘·数据分析
江湖中的阿龙1 小时前
AI Agent 调用工具怎么做才稳?参数校验、幂等与审计的 Python 实战
人工智能·python·ai agent·工具调用
破茧蝴蝶1 小时前
Selenium4 Python 页面白屏监控方案
开发语言·python
y = xⁿ1 小时前
分享一下自己总结的RAG评测流程
人工智能·python
全栈弄潮儿2 小时前
Python实战第6期:列表与元组
后端·python·编程语言
科技研学社2 小时前
服装自动化产线品质管控:机器能降不良,但不能自动兜底
运维·自动化
日耗10亿Token被老板赶出门2 小时前
大模型接口返回 200,为什么程序还是报错?
python
小小张说故事2 小时前
Python 的 __new__ 到底管什么?和 __init__ 的分工一次讲透Python后端python知识整理日新计划
python