Python编写屏幕截图程序方法

 更新时间:2015年02月18日 16:16:22   投稿:junjie  
这篇文章主要介绍了Python编写屏幕截图程序方法,本文讲解使用开源程序pywin32实现屏幕截图和读取剪切板功能,需要的朋友可以参考下

正在编写的程序用的很多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循环实现n的全排列功能

    Python循环实现n的全排列功能

    这篇文章主要介绍了Python循环实现n的全排列功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Python进阶之列表推导与生成器表达式详解

    Python进阶之列表推导与生成器表达式详解

    这篇文章主要为大家详细介绍了Python中列表推导与生成器表达式的相关知识,文中的示例代码讲解详细,具有一定的参考价值,需要的可以参考一下
    2023-04-04
  • python+numpy+matplotalib实现梯度下降法

    python+numpy+matplotalib实现梯度下降法

    这篇文章主要为大家详细介绍了python+numpy+matplotalib实现梯度下降法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 基于Opencv图像识别实现答题卡识别示例详解

    基于Opencv图像识别实现答题卡识别示例详解

    这篇文章主要为大家详细介绍了基于OpenCV如何实现答题卡识别,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Python bsddb模块操作Berkeley DB数据库介绍

    Python bsddb模块操作Berkeley DB数据库介绍

    这篇文章主要介绍了Python bsddb模块操作Berkeley DB数据库介绍,这里简单介绍一些关于bsddb的使用方法,需要的朋友可以参考下
    2015-04-04
  • python中的文件打开与关闭操作命令介绍

    python中的文件打开与关闭操作命令介绍

    下面小编就为大家分享一篇python中的文件打开与关闭操作命令介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 基于PyQt6实现智能视频分割器

    基于PyQt6实现智能视频分割器

    这篇文章主要为大家详细介绍了如何使用PyQt6打造一款支持拖拽操作,三种分割模式,高颜值界面的视频分割神器,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05
  • python三引号如何输入

    python三引号如何输入

    在本篇文章里小编给大家整理的是关于python三引号输入方法及相关实例,需要的朋友们可以学习下。
    2020-07-07
  • 解决Python 进程池Pool中一些坑

    解决Python 进程池Pool中一些坑

    这篇文章主要介绍了解决Python 进程池Pool中一些坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python工具dtreeviz决策树可视化和模型可解释性

    python工具dtreeviz决策树可视化和模型可解释性

    这篇文章主要介绍了python工具dtreeviz决策树可视化和模型可解释性,决策树是梯度提升机和随机森林的基本构建块,在学习这些模型的工作原理和模型可解释性时,可视化决策树是一个非常有帮助,下文相关资料,需要的小伙伴可任意参考一下
    2022-03-03

最新评论