搞了好久,东拼西凑的搞定python在win截图,并在截图区域画框

博主通过摸索,使用pywin32库成功实现了在Windows系统中截图并在指定区域画框的功能。由于网上资料有限,过程较为曲折。最终代码能够获取包含矩形标记的截图,但遇到将矩形中间设为透明的问题,期待Win32 API专家提供解决方案。
摘要由CSDN通过智能技术生成

对api不熟,网上python实用代码也不多,截图虽然有直接的代码,但是描述不全。连猜带蒙终于搞定了用pywin32对win屏幕截图,并在所需要截图的位置画框。

作为纪念,留个爪子,分享一下喜悦。如果有大神经过,觉得代码写的不好,不妨帮忙改改。

def winsst(argw=0,argh=0,argtopleft=(0,0)):
    '''截图,输出Bitmapsbits的列表
    argw=0表示全宽,argh=0表示全高
    '''
    hwnd = 0  # 窗口的编号,0号表示当前活跃窗口
    hwndDC = win32gui.GetWindowDC(hwnd) # 根据窗口句柄获取窗口的设备上下文DC(Divice Context)
    mfcDC = win32ui.CreateDCFromHandle(hwndDC)  # 根据窗口的DC获取mfcDC
    saveDC = mfcDC.CreateCompatibleDC() # mfcDC创建可兼容的DC
    saveBitMap = win32ui.CreateBitmap() # 创建bigmap准备保存图片
    MoniterDev = win32api.EnumDisplayMonitors(None, None)   # 获取监控器信息
    # 判断是否设置截图区域
    w = MoniterDev[0][2][2] if argw==0 else argw
    h = MoniterDev[0][2][3] if argh==0 else argh
    saveBitMap.CreateCompatibleBitmap(mfcDC, w, h)  # 为bitmap开辟空间
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值