从今年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
八、结束:
电脑前坐了一整天,去公园逛逛。
归来,附所拍照片一张,纯属娱乐,与本文无关~~
分享到:
相关推荐
ggjhlkjhluijljioomlkjll;l;
抓图工具(非常小但很实用的抓图工具),在项目开发的过程中,可以很快捷方便的抓图,对详细设计人员来说是很值得下载的工具
使用python实现的抓图工具,简介如下: 本工具提供抓图功能(包括全屏、当前窗口、任意区域),且有两种操作方式: 一、程序运行后,在桌面右下脚托盘图标上点右键,选择弹出的菜单项进行抓图操作。 二、通过...
小巧的抓图工具小巧的抓图工具小巧的抓图工具小巧的抓图工具小巧的抓图工具
测试过程中抓图工具,在测试过程中更好处理问题。请大家及时下载
python 截图 抓图 源码,支持快捷键截屏,自动保存,源码自由修改
开发周期主要分为需求分析、总体设计、详细设计、软件测试四个阶段。在开发的过程中采用了面向对象的软件开发方法,采用C++面向对象的程序设计语言进行编码实现。软件具备截取指定范围位图、显示截取的位图、保存...
因工作的需要,使用python3调用opencv对摄像头进行抓图。这是个最简单的例子,希望对大家有用。
好用的抓图工具
易语言小楼抓图工具源码,小楼抓图工具,取剪贴板位图,屏幕截图,屏幕截图1,删除对象,打开剪贴板,清空剪贴板,设置剪贴板数据,获取剪贴板数据,关闭剪贴板
04抓图工具HprSnap7中文绿色特别版.rar04抓图工具HprSnap7中文绿色特别版.rar04抓图工具HprSnap7中文绿色特别版.rar04抓图工具HprSnap7中文绿色特别版.rar04抓图工具HprSnap7中文绿色特别版.rar04抓图工具HprSnap7...
鱼鱼抓图工具
很好用的qq抓图工具很好用的qq抓图工具
方便实用的抓图工具,将过程记录下来,实用!
小巧实用的抓图工具-很小,功能很强大:支持全屏抓取,局部放大抓取,批量抓取,捕捉窗口指定等功能
最简单易用的抓图工具单文件版,我的装机必备工具。功能全面,不必为抓个图再专门装个专业工具。
简单实用的桌面抓图工具,实用方便,只需放到桌面,点击抓取桌面
此软件不用安装就可以用的抓图工具
最方便的抓图工具,最方便的抓图工具,最方便的抓图工具,最方便的抓图工具
网页抓图工具Web2Pic,能够让你轻松抓取任何网页,并将其生成一张图片