Python编写屏幕截图程序方法

作者:junjie 时间:2022-10-04 11:11:47 

正在编写的程序用的很多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,屏幕截图
0
投稿

猜你喜欢

  • 深入理解Python中的内置常量

    2023-01-21 02:57:47
  • Python pandas DataFrame基础运算及空值填充详解

    2022-01-01 22:19:49
  • GO语言原生实现文件上传功能

    2023-10-17 08:29:39
  • python利用跳板机ssh远程连接redis的方法

    2023-04-04 23:06:01
  • 全局字体最佳实践

    2009-08-13 14:37:00
  • vue 需求 data中的数据之间的调用操作

    2023-07-02 16:52:03
  • 如何用python 实现老板键功能

    2022-09-30 10:13:25
  • ASP的数据命名有什么规则吗?

    2009-10-28 18:23:00
  • WEB2.0网页制作标准教程(5)head区的其他设置

    2007-11-13 13:28:00
  • 在Pycharm terminal中字体大小设置的方法

    2023-11-12 07:12:56
  • 分享4个方便且好用的Python自动化脚本

    2023-05-31 02:20:32
  • 如何在Python里使用ChatGPT及ChatGPT是什么?注册方式?

    2022-12-01 22:43:12
  • Go语言sync包与锁实现限制线程对变量的访问

    2024-02-21 13:52:29
  • 国际上十四个优秀网页设计审核站

    2007-09-30 20:18:00
  • Golang简介与基本语法的学习

    2024-02-07 17:03:06
  • 用Frontpage设计网站主页

    2008-10-23 13:44:00
  • 基于JavaScript实现单选框下拉菜单添加文件效果

    2023-07-15 08:46:33
  • 梅尔频率倒谱系数(mfcc)及Python实现

    2021-08-11 11:06:39
  • Python filter过滤器原理及实例应用

    2021-03-20 13:11:13
  • Navicat远程连接SQL Server并转换成MySQL步骤详解

    2024-01-14 20:58:48
  • asp之家 网络编程 m.aspxhome.com