通过python实现windows桌面截图代码实例


Posted in Python onJanuary 17, 2020

这篇文章主要介绍了python实现windows桌面截图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

代码实例

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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python zip文件 压缩
Dec 24 Python
linux下python抓屏实现方法
May 22 Python
Python中装饰器高级用法详解
Dec 25 Python
用python实现的线程池实例代码
Jan 06 Python
python调用系统ffmpeg实现视频截图、http发送
Mar 06 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
Python TestCase中的断言方法介绍
May 02 Python
使用OpenCV实现仿射变换—旋转功能
Aug 29 Python
Python count函数使用方法实例解析
Mar 23 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
解决pytorch 保存模型遇到的问题
Mar 03 Python
PyTorch加载预训练模型实例(pretrained)
Jan 17 #Python
python 正则表达式参数替换实例详解
Jan 17 #Python
Python函数式编程实例详解
Jan 17 #Python
python实现tail -f 功能
Jan 17 #Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
Jan 16 #Python
python对象销毁实例(垃圾回收)
Jan 16 #Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 #Python
You might like
PHP中对数据库操作的封装
2006/10/09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
Webkit的跨域安全问题说明
2011/09/13 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
javascript求日期差的方法
2016/03/02 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
Python多线程及其基本使用方法实例分析
2019/10/29 Python
python实现3D地图可视化
2020/03/25 Python
python使用建议技巧分享(三)
2020/08/18 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
美国校园市场:OCM
2017/06/08 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
餐饮业会计岗位职责
2013/12/19 职场文书
运动会入场词100字
2014/02/06 职场文书
家长会主持词开场白
2014/03/18 职场文书
充分就业社区汇报材料
2014/05/07 职场文书
感恩教师主题班会
2015/08/12 职场文书
导游词之张家口
2019/12/13 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
Java基础——Map集合
2022/04/01 Java/Android
MySQL 原理与优化之Update 优化
2022/08/14 MySQL