`
dyx1024
  • 浏览: 114721 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

Python:实用抓图工具开发介绍(含需求分析、设计、编码、单元测试、打包、系统测试、发布各环节)

 
阅读更多

从今年1月份开始学习python以来,一直写一些很小的脚本文件,也主要是为了练习,今天花了些时间,写了一个还算功能齐全的小程序,并完成单元测试、系统测试、及打包等工作。与任何商业软件开发过程一样,小程序从无都有,也必须经历(需求分析、设计、编码、单元测试、打包、系统测试、发布各阶段),所以,借此,结合实现过程中遇到的问题,将此程序各环节做一个简单介绍,算做笔记,如果能对读者有所帮助,就再好不过了。


一、需求分析

1、标题:

开发一个可以快速抓图的小工具。

2、来源:

自己。

3、背景:

去年在工作中写过三四次软件操作指导书,step by step 的那种,这种指导书中难免会使用到各种操作界面的截图,有时需要全屏图片,有时需要当前窗口、更多时候需要 界面的部分图片,且需要将重点处使用红框做出标记,那时一直使用PrtSc键进行抓图,然后在画图板中编辑一下,最后在贴在word中,操作步骤多且单调,一定程度影响了工作效率。(由于公司不能上QQ,所以QQ相当方便的截图功能没法使用。)

4、价值:

价值不大,网上应该有好多这样的工具,但对个人学习python倒是很有帮助。

5、约束:

仅支持Windows环境上使用。


二、设计:

不分什么概要设计和详细设计了,简单描述一下思路:

通过使用pyhk模块提供的快捷键方式,注册3个快捷键(CTRL+F1/F2/F3),分别对应抓取三种不同的图片(全屏/当前窗口/任意区域),因用户习惯不尽相同,所以程序需要提供需要鼠标操作方式,此程序不是时时都使用,所以不能让它一直占用宽度有限的状态栏资源,故需要做成托盘程序,在托盘图标上通过鼠标右键点击弹出菜单项来进行抓图操作。

画个简单的图:


图1 用例图



三、编码:

这一部分在前面的博文中已经讲过,见《Python:一个多功能的抓图工具开发(附源码)》《Python:程序最小化到托盘功能实现》,今天对这个程序做了些改动,最主要的是将这两个源码结合起来,并修正一些测试中发现的问题,最终代码如下,不再做详细解释。

1、screenshot.py

2、screen_tray.py



四、单元测试

我使用的IDE为Eclipse+pyDev,功能强大,操作简单、可直接打断点进行逐语句调试,过程不介绍了,贴张图上来。


图2 单元测试


五、打包:

这一部分浪费时间较多,在之前的文章《Python:程序发布方式简介一(打包为可执行文件EXE)》中介绍了py2exe工具的所用,但如文章所述,打包出的exe文件有些动态库是没有被包含的,导致部分机器上执行失败。本次使用了另一个python打包工具Pyinstaller,此工具简单,只需要三步操作,可从http://www.pyinstaller.org/下载此工具。说一下操作步骤:

1、解压下载后的文件到任意目录,如E:\pyinstaller-1.5.1。

2、执行Configure.py。

3、将开发的python程序,相关文件、ico图标文件拷到E:\pyinstaller-1.5.1目录下。

4、执行Makespec.py -F -w -X screen_tray.py,执行后生成规则文件screen_tray.spec,内容如下,可手动编辑。

5、执行>Build.py E:\pyinstaller-1.5.1\screen_tray/screen_tray.spec打包。

6、成功后,在E:\pyinstaller-1.5.1\screen_tray\dist目录下生成screen_tray.exe文件。

图3 打包后的文件

7、由于托盘程序需要使用一个ico图标,这个文件我一直没有办法打包进exe,浪费很多时间后放弃,所以在软件发布时在exe文件所在上目录中建立了一个子目录datafile,其中存放图标,用户也可替换为自己的,只要文件名不变就行。程序中也做了些容错处理,如果目录不存在,则从系统目录下加载一个。如下:


8、Pyinstaller使用方便,不足之处是它打包的EXE文件比较大,所以这个小工具有9M大小。


六、系统测试:

直接运行一下看看,依然上图:

1、执行screen_tray.exe,托盘显示正常。

图4 托盘显示测试

2、菜单项目测试,正常。

图5 菜单项测试

3、抓取功能正常(快捷键及菜单项)

图6 抓图功能测试(任意区域)

4、帮助菜单正常。

图7 帮助功能测试(任意区域)

其他测试点就不一一写了,累了。


七、发布:

好像没地方发布,目前就我一个用户。

连同源码一并上传到资源中,感兴趣的朋友可以试用,全当学习交流哈~

地址:http://download.csdn.net/detail/dyx1024/4206549


八、结束:

电脑前坐了一整天,去公园逛逛。

归来,附所拍照片一张,纯属娱乐,与本文无关~~


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics