zoukankan      html  css  js  c++  java
  • python实现windows桌面截图

    一、代码

    更多代码案例:https://www.programcreek.com/python/example/62809/win32ui.CreateBitmap

    import time
    
    import win32api
    import win32con
    import win32gui
    import win32ui
    
    
    def get_desk():
        # 获取桌面
        hdesktop=win32gui.GetDesktopWindow()
    
        # 分辨率适配
        width=win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
        height=win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
        left=win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
        top=win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)
    
        # 创建设备描述表
        desktop_dc=win32gui.GetWindowDC(hdesktop)
        img_dc=win32ui.CreateDCFromHandle(desktop_dc)
    
        # 创建一个内存设备描述表
        mem_dc=img_dc.CreateCompatibleDC()
        screenshot=win32ui.CreateBitmap()
        screenshot.CreateCompatibleBitmap(img_dc,width,height)# 为bitmap开辟空间
        mem_dc.SelectObject(screenshot) # 将截图保存到Bitmap中
        mem_dc.BitBlt((0,0),(width,height),img_dc,(left,top),win32con.SRCCOPY) # 截取从左上角(0,0)长宽为(w,h)的图片
    
        # 保存到文件
        time_tup=time.localtime(time.time())
        format_time="%Y-%m-%d_%a_%H-%M-%S"
        cur_time=time.strftime(format_time,time_tup)
        screenshot.SaveBitmapFile(mem_dc,'{}.bmp'.format(cur_time))
    
        # 释放内存
        mem_dc.DeleteDC()
        win32gui.DeleteObject(screenshot.GetHandle())
    
    if __name__ == '__main__':
        get_desk()
  • 相关阅读:
    XML 约束
    XML 高级
    XML 基础
    XML系列【目录】
    Java11 新特性
    Java10 新特性
    Java9 新特性 (二)语法改进
    Java9 新特性 (一)新增特性
    第一章:Class 文件结构
    java面试题全集(上)--java基础
  • 原文地址:https://www.cnblogs.com/angelyan/p/12196143.html
Copyright © 2011-2022 走看看