Python编写屏幕截图程序方法


Posted in Python onFebruary 18, 2015

正在编写的程序用的很多Windows下的操作,查了很多资料。看到剪切板的操作时,想起以前想要做的一个小程序,当时也没做,现在正好顺手写完。

功能:按printscreen键进行截图的时候,数据保存在剪切板里面,很不方便。比如游戏的时候截一个瞬间的图片,但你不能退出游戏保存图片,不方便多次截图。而我也不喜欢安装各种软件,所以准备写这个工具。

思路:一个是自定义快捷键,截图,保存。考虑到很可能各种冲突,取消。然后还是用按printscreen来截图,然后从剪切板读取图片数据,保存。想法是,先监听键盘按键,当printscreen按键时,读取剪切板内容,最后保存图片到指定位置。

1 监听键盘按键:从网上找到资料,安装pywin32,pyhook。链接:http://sourceforge.net/projects/pyhook/,http://sourceforge.net/projects/pywin32/。教程:http://sourceforge.net/apps/mediawiki/pyhook/index.php?title=PyHook_Tutorial。

2 读取剪切板内容,也是需要pywin32.文档在:[Pythonpath]\Lib\site-packages\PyWin32.chm,在线的:http://timgolden.me.uk/pywin32-docs/index.html

文档中给出的几种格式都不是图片保存的数据,Google搜索“Standard Clipboard Formats”,链接:http://msdn.microsoft.com/en-us/library/windows/desktop/ff729168%28v=vs.85%29.aspx,所有的格式,主要就是1-17.

好在文档中有一个函数:GetPriorityClipboardFormat,可以返回剪切板中的格式,从一个迭代器中。于是手动输入找到了,y有时为6,win32con.CF_TIFF,还会为2。当然这里直接用返回数据就行了,不需要知道是什么。

主要用到:

OpenClipboard,CloseClipboard,GetPriorityClipboardFormat,GetClipboardData,这几个函数文档都有介绍,主要说说CloseClipboard,官方文档上讲,不要在剪切板里放置对象后调用CloseClipboard。

3 保存图片:

到这里发现可以直接用PIL模块,直接解决问题,上面太曲折T_T。

可以直接使用ImageGrab.grab() 进行抓屏,或者使用ImageGrab.grabclipboard()从剪切板获取图像。

 

最后变成,监听按键,按下printscreen后,用pil截图保存。T_T 感觉还不如设置快捷键,这样应该少占用内存。

Python 相关文章推荐
python操作xml文件示例
Apr 07 Python
在Python中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
python中sys.argv函数精简概括
Jul 08 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
python将字符串以utf-8格式保存在txt文件中的方法
Oct 30 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
Aug 30 Python
Python zip函数打包元素实例解析
Dec 11 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 Python
如何使用Python抓取网页tag操作
Feb 14 Python
深入理解Python 多线程
Jun 16 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
Python处理RSS、ATOM模块FEEDPARSER介绍
Feb 18 #Python
Python内置函数Type()函数一个有趣的用法
Feb 18 #Python
Python中使用MELIAE分析程序内存占用实例
Feb 18 #Python
Python中的__SLOTS__属性使用示例
Feb 18 #Python
Python contextlib模块使用示例
Feb 18 #Python
Python中使用Inotify监控文件实例
Feb 14 #Python
Python中实现的RC4算法
Feb 14 #Python
You might like
图书管理程序(三)
2006/10/09 PHP
兼容性比较好的PHP生成缩略图的代码
2011/01/12 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
php实现webservice实例
2014/11/06 PHP
php 使用file_get_contents读取大文件的方法
2014/11/13 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
Jquery 设置标题的自动翻转
2009/10/03 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
修复ie8&chrome下window的resize事件多次执行
2011/10/20 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
Python网络编程详解
2017/10/31 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
Python 爬虫之Beautiful Soup模块使用指南
2018/07/05 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
计算机应用职专应届生求职信
2013/11/12 职场文书
初中三年学生的学习自我评价
2013/11/13 职场文书
前台领班岗位职责
2013/12/04 职场文书
《狐假虎威》教学反思
2014/02/07 职场文书
入党介绍人评语
2014/05/06 职场文书
教室布置标语
2014/06/26 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
2015年党建工作总结
2015/03/30 职场文书
新教师2015年度工作总结
2015/07/22 职场文书