Python写一个像QQ可快捷键唤起区域截屏的应用

作者: 一墨编程学习 | 来源:发表于2019-05-09 16:08 被阅读3次

1.截屏应用功能拆解

先把要实现哪些功能罗列一下,功能拆解好了,程序设计时就比较清晰。

1).首先要能响应快捷键调起截屏程序,像QQ使用Ctrl+shift+B可以截屏一样;

2).然后就是截图功能,可以用鼠标选取截取的区域;

3).最后是要把截屏保存为本地图片。

2.做一下技术调研

功能拆解出来了,就开始调查下实现难度,有没有现成的第三方库可用,Python是出了名的库多,多找一找总会找到的。

搜寻了一下Python有截图功能的库,基本都是全屏截图和程序输入坐标来区域截图,没办法用鼠标选择可视化截图。不过网上有同学提出通过写一个GUI程序,把全屏截图展示在这个GUI界面上,然后在GUI上可以实现鼠标可视化选取功能。

看起来还不错,因为之前用过Tkinter,所以就用Tkinter来做GUI了,不过很久没写,手也生得很。

Tkinkter可以监听键盘事件,但是只有当焦点在Tkinter上时才会响应键盘事件,而截图应用是截其他地方的图,比如浏览器,聊天软件等等,焦点这时肯定不在Tkinter上,所以需要另找一个可以全局监听键盘事件的库,pynput就进入了法眼。

跟截图图片处理的话,首先就想到PIL库,它的ImageGrab方法能够全局截图,也能传入坐标实现区域截图,就选PIL了。

一番搜寻下来确定了实现方法:

使用pynput库来监听键盘,使用Tkinter来做GUI,使用PIL的ImageGrab来截图。

详细的实现原理是:

当程序运行起来后就在后台监听键盘,当键盘按下ctrl+shift+M时就使用PIL做全屏截图,接着用Tkinter把全屏截图显示出来,通过Tkinter的画布(canvas)和鼠标选取做二次截图。

大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!!同时,自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每日分享一些学习的方法和需要注意的小细节

点击:python技术分享交流

3.开始写截图代码了

pynput、Tkinter、PIL官方和网上都有示例,拿过来改一改,把他们逻辑串在一起就可以调试了。(我只是大自然的搬运工)

监听键盘代码如下:

截图、调用TK、二次截图主逻辑如下:

想加一个演示效果的,结果录屏软件弄了很久,视频分辨率都不理想,汗!

100多行代码搞定快捷键截屏功能,这就是用Python的好处,各种小功能都有解决方案,主要花的事情是拆解功能,选定实现路径。

不过这样由于是做了两次截图,第一次全屏截图,第二次是在全屏截图上再截图,所以保存下来的图片不太清晰。

相关文章

  • Python写一个像QQ可快捷键唤起区域截屏的应用

    1.截屏应用功能拆解 先把要实现哪些功能罗列一下,功能拆解好了,程序设计时就比较清晰。 1).首先要能响应快捷键调...

  • Xcode有关简单快捷方式

    command +shfit+3 全屏截屏 command +shfit+4 区域截屏 应用程序的切换 comma...

  • mac 快捷键

    区域选择截屏快捷键 command + shift +4 , 之后用鼠标选择区域,之后图片会保存到桌面

  • 屏幕录制

    在「用 Bash 脚本写一个截屏工具」一文的后记里,我将截屏脚本略加改动,得到了一个可录制屏幕中指定窗口区域的脚本...

  • 一款小巧却功能丰富的图像编辑器,全能截屏+编辑!

    不知道大家平时都是用什么工具截屏的,可能很少人会去下载一个专门的截屏软件,像微信、QQ都有截屏功能,截屏后还有简单...

  • 禁止截屏

    像支付宝付款二维码这种对安全要求比较高的界面,应用一般会选择屏蔽设备截屏功能。当你同时按下截屏快捷键组合(常见为开...

  • Mac使用小技巧

    1. 使用特定的应用程序打开特定格式的文件 解决方法如下: 2. 解决QQ截屏快捷键失效问题 解决方法如下: 3....

  • mac快捷键

    打开截屏录屏快捷键 control + command + o

  • xfce4 快捷键设置

    PrintScreen 键无法截屏 安装包「xfce4-screenshooter」,在「键盘」的「应用程序快捷键...

  • Mac电脑版QQ截图快捷键?如何设置?

    qq截图估计很多人都用到,可是按✂️太麻烦,那快捷键是什么? 步骤如下gif: 查看截屏设置快捷键:【ctr...

网友评论

    本文标题:Python写一个像QQ可快捷键唤起区域截屏的应用

    本文链接:https://www.haomeiwen.com/subject/wnyyoqtx.html