《图片管理系统》需求分析说明书

《图片管理系统》需求分析说明书
《图片管理系统》需求分析说明书

?《图片管理系统》需求分析说明书需求分析说明说

[友好创达图片管理系统]

需求分析说明书

北京友好创达科技有限公司

数字化生产中心

二零一三年二月

1

需求分析说明说

摘要

图片管理系统主要功能就是实现对计算机上常见的图像文件进行统一的管理操作,包括浏览,分类,信息的提取,查看方式的变换等,由于图片格式众多,而且常见的系统操作常常不能将非图片格式的文件进行过滤,给图片的查看造成了一定的不便,而且通常的查看文件属性需要比较,麻烦的操作步骤,我们在软件制作过程中将类似的操作作为默认的显示,另外可以按照自己的需要随时将工具栏,状态栏,目录树区域,预览区域选择为显示或者以隐藏,使图片视图区域显示面积增大。

另外我们设计了文件夹下所有文件的属性信息输出到一个文本文件中,可以方便的有针对性地对文件的属性信息进行处理,我们还设计了文件批量重命名功能,在文件命名杂乱的时候可以以一种有序的方式将文件名重新命名排序。图片的浏览往往会出现希望获取的颜色值的信息,颜色指示器的设计即为实现此功能,可以在颜色指示框内显示当前鼠标所在位置的颜色显示,而RGB值的数值表示也为我们的工作提供了很大的方便。

实现此系统除了必要的编程知识以外,还要获取多媒体,计算机文件系统,存储原理,等多方面的知识。我们在自己技术水平上进行了比较全面的探索,基本上实现了一个图片管理系统所应有的功能,并在软件的稳定性上,功能的丰富程度上,做了一定的努力和探索。

关键字:图片格式,名字外壳空间,RGB ,REPORT视图,动态链接库

2

需求分析说明说

1 绪论

1.1背景及意义

图像是对客观存在的对象的一种相似形描述,可以被存储,复制,加工.它是用各种观察系统以不同形式和手段观测世界而获得的.照片,绘画,电视画面等都是图像的直观例子.当然还包括对一些视觉无法直接观察到的物理图像和空间图像.比如红外图像,电磁场的图形描述.科学研究表明,人们通过视觉系统获得的信息量占所有信息量的75%以上.这说明图像对人们认知世界是极其重要的一个途径.

二十世纪中叶产生的计算机技术,自从发明以来就显示出蓬勃的生命力,图像的技术也在这个新的技术平台上有了新的应用,为解放人类生产力提供了重要动力.计算机技术以及微型芯片的不断进步,相关产品的大规模普及,使相关的应用领域迅速扩展到家用娱乐方面,为人们的生活添加了更加丰富的元素.目前数码相机的像素水平已经足以为我们提供足够清晰的数码照片,而计算机存储容量的增加为我们的存储提供了方便,而且计算机上功能强大的图像浏览,管理,处理软件也方便了人们的需求.再加上网络上资源极大的丰富,风格各异的艺术设计,摄影艺术等,我们需要管理的图片数量越来越大,当然随之而来的图片的分类,检索,相关信息的查看,图片名字的批量命名也成了人们的实际需求.

1.2同类系统发展动态

1.2.1 网络管理(即C/S架构):

主要以当前网络流行的网络相册为主,各大门户,社交网站,都提供了照片的而存储,及浏览.便于实现跨地域浏览以及分享.比如各大门户都有给用户提供相册功能,使用户可以方便的上传自己的图片,而且用户只要以用户名密码登陆可以在任何地点获取到自己的图片,而且可以方便的设立共享和非共享,是可以方便的与人共享自己的图片.有的邮件系统提供商将此功能集成在邮箱里.而同时时下比较流行的博客系统,社交网站,也会允许用户提供自己的图像空间.也有不少网络硬盘提供商免费提供网络硬盘,存储文件,图像当然可以作为文件上传,但是只能以名字判

1

需求分析说明说

断内容,只有将图片现在下来才可以看到图像.优缺点,方便共享,异地访问,网络速度限制,除了网络硬盘提供可以保证完整性以外,有些系统会在用户上传以前对图像的大小进行处理,如果用户对图像质量要求严格的话,会有影响.网络安全方面的原因,图像的丢失,泄露,个人隐私的泄露,操作耗时,毕竟要通过远端进行相关操作,有一定的滞后性.有待于网速的进一步提升.

1.2.2 单机版软件(单机模式):

主要以本地主机内存储的图片为对象,功能强大.有些甚至有简单的图片处理功能.在本地安装的浏览管理软件主要是打开指定的文件,或者在某个文件夹下进行管理活动.

2 基础知识描述,以及相关软件介绍

主要对图像相关的一些概念进行阐述,从最基本的光与色彩,人的视觉知,颜色空间,图像分辨率,像素,不同色彩空间的转换,图形与图像的区别,主要的图像格式.作为文件被存储在磁盘空间上的图像文件的存储方式,文件系统相关,shell相关以

及理论上一个图像信息管理应该具有的功能。再就是写作论文以及实现软件时涉及的软件,VC++6.0,MS-WORD, CreateInstall Free 程序打包软件。 2.1 RGB模型任何颜色C都可以可用光电三原色的三种基色:红(R=red:700nm)、绿

(G=green:546.1nm)、蓝(B=blue:435.8nm) 配出:

C = rR + gG +bB

公式(3-1)

其中,r、g、b为三基色的比例系数,满足r + g + b = 1;R、G、B为三基色的单位,分别为1、4.5907、0.060光瓦(因为用红、绿和蓝三基色光匹配成白光时,

2

需求分析说明说

所需要的红、绿和蓝基色光的光通量之比为1?4.5907?0.0601)。用光电三原色混色,满足加色原理(参见图2-6):

图2-6 光电三原色混色的加色原理

如果每个像素的每个颜色分量(R,G,B)用二进制的1位来表示,那末每个颜色的分量只有“1”和“0”这两个值。这也就是说,每种颜色的强度是100%,或者是0%。在这种情况下,每个像素所显示的颜色是8种可能出现的颜色之一,如下表所示。

相加色:

RGB 000 001 010 011 100 101 110 111 颜色黑蓝绿青红品红黄白表2-3相加色

RGB模式适用于显示器这类发光物体。

RGB是由三种基本颜色Red红、Green绿、Blue蓝组成,每种颜色的亮度大小用数字0-255表示,共有1670万种颜色。

R=G=B=0 黑色

R=G=B=255 白色

0

3

需求分析说明说

2.2 CMYK模型

CMYK相减混合模式

CMYK模式主要用于彩色打印机和彩色图片印刷这类吸光物体上。CMYK是由Cyan青色、Magenta品红色、Yellow黄色、Black黑色组成,每种颜色用百分数0-100%来表示。

C=M=Y=K=0% 白色

黑色 C=M=Y=K=100%

CMY指色料三原色:青色(Cyan)、品红(Magenta)和黄色(Yellow)。用这三种-7): 基色混色,满足减色原理(参见图2

-7 色料三原色混色的减色原理图2

CMY模型主要用于打印和印刷彩色图像。用彩色墨水或颜料进行混合,这样得到的颜色称为相减色。在理论上说,任何一种颜色都可以用这三种基本颜料按一定比例混合得到。用这种方法产生的颜色之所以称为相减色,乃是因为它减少了为视觉系统识别颜色所需要的反射光。CMY以白色为底色减,即CMY均为0是白色,均为100%是黑色(但在实际中,由于油墨的纯度等问题这样得不到纯的黑色,因此引入K)彩色打印机采用的就是这种原理,印刷彩色图片也是采用这种原理。按每个像素每种颜色用1位表示,相减法产生的8种颜色如下表所示。由于彩色墨水和颜料的化学特性,用等量的三基色得到的黑色不是真正的黑色,因此在印刷术中常加一种真正的黑色(black ink),所以CMY又写成CMYK(其中K = black黑)。

青品黄相减

4

需求分析说明说

色红色色

0 0 0 白

0 0 1 黄

0 1 0 品红

0 1 1 红

1 0 0 青

1 0 1 绿

1 1 0 蓝

1 1 1 黑

表2-4 相减色

相加色与相减色之间有一个直接关系,表2-5所示。利用它们之间的关系,可以把显示的颜色转换成输出打印的颜色。相加混色和相减混色之间成对出现互补色。例如,当RGB为1?1?1时,在相加混色中产生白色,而CMY为1?1?1时,在相减混色中产生黑色。从另一个角度也可以看它们的互补性:从表4-7中可以看到,在RGB中的颜色为1的地方,在CMY对应的位置上,其颜色值为0。例如RGB为0?1?0时,对应CMY为1?0?1。

相加混色RGB 相减混色CMY 生成颜色

000 111 黑

001 110 蓝

010 101 绿

011 100 青

100 011 红

101 010 品红

110 001 黄

111 000 白

5

需求分析说明说

表2-5 相加色与相减色的关系

2.3 颜色空间的转换

RGB??CMY的互相转换

RGB?CMY :C = 1- R M = 1- G Y = 1 - B

CMY?RGB :R = 1- C G = 1- M B = 1 – Y

2.4 图片的格式,相关标准,以及比较

常用的图像文件格式很多,JPG,GIF,BMP,PNG,

2.4.1 BMP

位图(Bitmap)文件(*.BMP)是由Microsoft与IBM为Windows和PS/2制订的图像文件格式。支持灰度图、伪彩图和24位的真彩图,可采用RLE无损压缩(16/256色图)或不压缩(黑白/真彩图)。格式简单、显示快,在Windows平台中使用广泛。缺点是文件大,占存储空间和传输带宽。一般用于小尺寸图像和中间/临时图像。

2.4.2 GIF

可交换图形格式(GIF=Graphics Interchange Format),由CompuServe公司于87年起定义,现有a与89a两个主要版本,采用变长LZW压缩算法。限制:最多256(索引)色、64K*64K像素。无损压缩、文件小、使用广泛(尤其是网络),有大量图片库(美人照、景物特写)。

2.4.3 TIF

标记图像文件格式(TIFF = Tag Image File Format) (*。TIF),由Aldus和Microsoft联合开发,支持黑白、索引色、灰度、真彩图,可校正颜色和调色温,支持多种压缩编码(Huffman、LZW、RLE)。常用于对质量要求高的专业图像的存储。

6

需求分析说明说

优点:通用、高质、无损压缩;

缺点:标准不统一、格式复杂、解码难。

2.4.4 JPEG

JPEG(*.JPG)主要采用DCT(Discrete Cosine Transform离散余弦变换)进行有损压缩,压缩比可调整,在压缩10~30倍后,图像效果仍然不错。适用于灰度图与真彩图,使用非常广泛(尤其是网络)。一幅727*525(NTSC TV)的24位真彩图,在

BMP、GIF和JPEG三种不同图像文件格式下,文件大小和图像压缩比都差别很大。参见表2-6。

图像格式文件大小压缩比品质

BMP 1,145 KB 1 : 1 24位原图

GIF 240 KB 4。77 : 1 256色

155 KB 7。39 : 1 高质(?原图)

JPEG

58 KB 19。74 : 1 标准(?GIF)

表2-6 三种图像格式的比较

2.4.5 PNG

PNG (Portable Network Graphic Format可移植网络图形格式,读成”ping”)是W3C(World Wide Web Consortium万维网协会)制定的一种采用无损压缩的图像存储文件格式,支持多达16位深度的灰度图像和48位深度的彩色图像,并且还可支持多达16位的α通道数据。PNG可以看作是GIF的一种推广,它继承了GIF的主要优点,又增加一些GIF所不具备的特性,但不支持动画。推出PNG的目的是希望替代GIF(不支持真彩色)和TIFF(太复杂)这两种也采用无损压缩的图像文件格式。

7

需求分析说明说

3 模块的划分联系及涉及的技术

通常软件的设计包括功能的设计与界面的设计两大部分,功能方面主要依据需

求而设计,界面方面是在功能的基础上根据人机交互方面的规则进行,主要以用户操作简便,容易上手,所以开发过程中需要遵循软件行业的开发规范,是使用者比较容

易了解掌握。我们的图片管理系统目的就是想制作出一款软件使人们可以不用花费多余的操作就轻松实现个人计算机上的图片的管理。

8

需求分析说明说

3.1 软件总体功能的结构:

界面视图

菜单栏

FILE VIEW HELP

HELP TOOLBAR ABOUT NEW

DOCUMENT

INFOROUT STATUSBAR

BATCH RENAME DIRECTORY

EXIT PREVIEW

工具栏

终止线程新建

About REPOTRT

ICON 颜色指示器

路径指示器

客户区

DIRECTORY VIEW PREVIEW

状态栏

RGB 时钟

图3-1软件总体功能的结构

以上为软件界面的布局为导向的软件结构图,基本上是软件实现以后界面的映射,这里仅仅能反应界面上的显示,而真正的背后的个功能模块,以及各模块之间的

联系需要以别的结构图来表示。在这里软件的界面与背后代码的联系,软件的功能

9

需求分析说明说

与代码的实现,软件各模块之间的联系均为立体的网状的关系。所以我们尽量的以

图表的形式,示意图的形式并配以文字的介绍来力图表达清楚自己的设计想法。

以下是菜单栏的函数对照示意图。

3.1.1 FILE各功能与响应函数的对应:

CThumbViewerView::OnFileNew()

FILE

NEW

CThumbViewerView::OnOut() INFOROUT

CThumbViewerView::OnBatch() BATCH RENAME

CMainFrame::OnClose()

EXIT

图3-2 FILE各功能与响应函数的对应3.1.2 VIEW 各功能与响应函数的对应: MFC框架内部实现

VIEW

TOOLBAR

MFC框架内部实现

STATUSBAR

CMainFrame::OnViewDirectoryBar() DIRECTORYBAR

CMainFrame::OnViewPreviewBar() PRIVIEWBAR

-3各功能与响应函数的对应图3

10

需求分析说明说

3.1.3 HELP各功能与响应函数的对应: CThumbViewerApp::OnAppAbout()

HELP

HELP

CThumbViewerView::OnMENUITEMhelp()

HELP DOCUMENT

图3-4 各功能与响应函数的对应

以下是工具栏上的函数功能对应图:

11

需求分析说明说

3.1.4TOOLBAR 的各功能与函数对应图: CThumbViewerView::OnFileNew() TOOLBAR

新建(NEW)

CMainFrame::OnStopThread() STOP THREAD CThumbViewerApp::OnAppAbout()

ABOUT

CThumbViewerView::OnReport()

REPORT

CThumbViewerView::Onthumb()

THUMB

CMainFrame::OnUpdateFileNew(CCmdUI* pCmdUI) COLOR SHOW CMainFrame::OnUpdateFileNew(CCmdUI* pCmdUI)

PATH SHOW

图3-5 TOOLBAR 的各功能与函数对应图

12

需求分析说明说

3.1.5 客户区 CLIENT AREA的各功能与函数对应图:

CLIENT AREA

CDirTreeCtrl::Initialize()

CDirTreeCtrl::OnSelchanged(NMHDR*,LRESULT*)

DIRECTROY TREE CDirTreeCtrl::RefreshShellRoot(pidlRoot,

bIncludeFiles)

CDirTreeCtrl::ExpandItem(HTREEITEM hItem)

CDirTreeCtrl::DeleteChildren(HTREEITEM hParent)

CDirTreeCtrl::PopulateItem(HTREEITEM hParent)

CDirTreeCtrl::FillItem(TVITEM&, LPCITEMIDLIST,

IShellFolder*, LPCITEMIDLIST)

CDirTreeCtrl::PreTranslateMessage(MSG* pMsg)

CPreviewBar::OnCreate(LPCREATESTRUCT)

LPDRAWITEMSTRUCT) CPreviewBar::OnDrawItem(int,

PREVIEW FUNC CPreviewBar::OnSize(UINT nType, int cx, int cy) CPreviewBar::OnLButtonUp(UINT,CPoint)

CThumbViewerView::OnInitialUpdate()

CThumbViewerView::Create(lpszClassName,lpszWindowName, LIST VIEW dwStyle,rect, pParentWnd, nID, pContext)

CThumbViewerView::LoadThumbImages()

CThumbViewerView::OnFileNew()

CThumbViewerView::OnItemchanged(NMHDR*, LRESULT* pResult) CThumbViewerView::TerminateThread()

CThumbViewerView::OnLButtonDblClk(UINT nFlags, CPoint point) CThumbViewerView::PreTranslateMessage(MSG* pMsg) CThumbViewerView::OnSelectTree(wParam, lParam) CThumbViewerView::GetItemInfor(int i,int num)

void CThumbViewerView::OnDestroy()

CThumbViewerView::OnMENUITEMhelp()

CThumbViewerView::OnReport()

CThumbViewerView::Onthumb()

CThumbViewerView::OnColumnclick(NMHDR*, LRESULT*) CThumbViewerView::OnUpdateReport(CCmdUI* pCmdUI) CThumbViewerView::OnOut()

CThumbViewerView::OnBatch()

13

需求分析说明说

图3-6客户区 CLIENT AREA的各功能与函数对应图 3.1.6 STATUS的各功能与函数对应图:

CMainFrame::OnUpdateFileNew(CCmdUI* pCmdUI)

STATUS

RGB VALUE

CMainFrame::OnTimer(UINT nIDEvent)

TIME SHOW

图3-7 STATUS的各功能与函数对应图

3.2 软件功能模块的设计

这款软件主要包括以下七种功能,由于技术水平,以及时间,经验的限制我们实现了大部分模块的功能,没有实现的部分可以作为我们今后努力的方向。也为我们今后这个软件的继续改进,功能丰富提供一个基础。

功能的描述,和软件真正的实现是有不一致的,软件功能的描述更着重于用户体验,以及用户的要求,而实现部分当然会遵循这个需求进行设计,但是在实现时又会因为实际情况进行重新整合,比如有些功能会交叉,而有的会放在别的模块里进行实现。考虑到软件实际编写的过程,要做好这两者之间的对应。,而且还有一种情况是客户要求的功能是建立在软件实现上的,势必个功能模块要与软件创建时某些系统自身的功能联系。

3.2.1 目录树功能模块

图像文件虽然展现出来的是万紫千红的景色,或者是精彩绝伦的设计,但是它在计算机磁盘上的存储确实和其他文件是一样的,通常情况下这些文件是放在某个

14

需求分析说明说

文件夹下面的,而如果我们使用平时的使用方式,依次点击进入到那个目录下会需要多次的点击,比如计算机启动以后我们会首先从桌面\我的电脑\X盘分区\X文件夹\X图片,每次都需要双击,并且当某个目录下文件夹众多时,我们需要滚动鼠标滑轮,寻找目标文件夹。当然我们可以使用windows自带的文件查看方式需选择各种查看方式,而且当你要返回上一个文件夹或者后退时,都需要移动较大的距离。

我们选择使用类似与资源管理器的目录树列表,就可以方便的解决这个问题,当我们要进入某个文件夹时只需要点击他的父文件夹前面的加号,即可轻松打开,以列表的形式展示可以让我们快速的找到目标文件夹。回退时更方便,只要选择上一级目录即可跳出,而且当我们要迅速跳转到其他分区,文件夹时效率更加高效。

我们这个版本只是提供目录的伸展,折叠,以及对包括对主存储器以外的存储器地支持,包括光盘,可移动磁盘,但是局域网内共享的文件的查阅还不行,因为这涉及到了网络方面的技术。暂时还不能提供文件夹相关的操作,比如复制,删除,文件的拖放等。

目录树区域的大小是可以通过鼠标点击他的边框进行拖放的。而且只要我们选择了菜单栏上的状态菜单可以控制目录树的显示和隐藏。

当我们使用目录树时,我们选择的消息会通过文档类视图向文件夹下的各项目信息显示于右边的试图模块里。

3.2.2 预览栏功能模块

我们通常使用的microsoft的图片查看器可以使用缩放功能,但是当一张图片缩小到自身大小的时候,我们便没有办法缩小,虽然继续缩小会影响图像的质量但是我们在实际操作过程中的确有是图片缩小的需求。通常的情况下,我们只能去选择图像处理软件比如photoshop,firewoks等,但就为这一个需求去安装那么庞大的住那业软件,以及对系统资源的占用,都是极不合算的。所以我们在预览右边视图模块选择的目标图像文件时,不仅仅可以显示他们,而且可以通过拖拉preview栏的大小实现图片显示大小的缩放。这一功能在使用过程中是没有直接通过滚轮调整大小方便,在以后的版本改进计划中会逐步加入的。同上一个目录树模块相同,他的显示以及隐藏也可以通过菜单栏上状态菜单的选择实现。

15

需求分析说明说

3.2.3 视图栏功能模块

视图栏模块可以说是整个软件的核心部分,因为软件的目标就在管理上,所以我们要在这个模块上实现多样方式的查看,而这个模块也是和其他几个模块联系最频

繁的一个。它可以接受工具栏上的两个查看方式按钮的选择消息,变换文件夹下文件序列的显示方式,默认的查看方式是缩略图显示,而当选择Report模式时首先在默认的状态下,只显示目标文件的名字。此时会计算各个目标的区域位置,为显示tooltip提示做准备,而当我们在工具栏上选择详细信息查看方式时,将会把所有的项目以列表形式列出,列出的文件属性有名字,大小,文件类型,上次修改时间,图像的宽高,图像的分辨率。这时候由于各项信息很明显就不需要tooltip的显示了。

除了显示以外,如果我们需要使用系统自带的图片查看器查看,我们可以双击目标图像文件。

3.2.4 信息输出功能模块

我们有时候会需要将文件夹以及其下的文件进行遍历列表输出,形成txt文档,或者Html文档的形式存放。所以可以初步的实现在一个文件夹下的文件列表输出。 3.2.5 文件修改功能模块

文件修改包括两部分:文件内容的修改,文件属性信息的修改。

(1) 文件内容的修改使之使用图像处理的方法对图像做出有限局部的修改,比如添加文字,添加日期。修改图片局部的瑕疵,进行简单的色彩处理,灰度处理,格式转换等。这一部分的功能需要对图像处理有一定的认识,这个功能我没有实现。

(2) 文件属性信息的修改:主要集中在名字的修改,最重要的需求是名字的批量命名。目前的图片分类方法还是主要集中在以文件夹的形式进行分类存放。批量命名功能目前只能简单的以数字序列命名,这离实际的功能需求还有一定的距离,因为在实际应用中不仅仅是以数字为序列的,有一字母为序列的,有的还有对特定位置的字段进行有序更名,所以我们这里还只能是一个实验性质的功能。

16

需求分析说明说

3.2.6 搜索模块功能

(1) 文件的全盘扫描,技术允许的话可以将扫描结果存储在数据库中,甚至可以监视文件的改动情况。但是可以设置扫描条件限制,google的picssa有全盘扫描的功能,但是没有条件限制,使得一些根本没有欣赏价值的ICON,BMP小图片被搜索出来,占用了有限的资源,又不能为用户所使用。我们可以设置以文件的名字,大小,宽高比,日期,搜索范围等条件进行组合搜索,使得范围缩小化,提高搜索准确率。

(2) 我们发现通常的搜索是一次性的,即只能在条件一的情况下得出结果,但是如果要在得出的搜索结果内部再进行二次搜索时就会产生困难。

以上两个目标由于设计过多的文件系统相关操作,我们由于自己的能力没有能够实现。

3.2.7 辅助功能模块

包括一个时钟,一个颜色指示器,一个RGB值动态解析器。一个路径显示器。这几个功能都会放在工具栏上和状态栏上,而这两个工作条都可以被选择显示或者隐藏。还有一个帮助文档,当我们点击help中的help document时会启动网页浏览器打开HTML形式的帮助文档。内容包括文档信息,使用帮助,功能信息。以及版权声明等。

17

需求分析说明说 3.3 界面的设计(软件实现界面的截图) 3.3.1 启动画面

图3-8 启动画面 3.3.2 软件运行以后的各部分截图显示

图3-9软件运行以后的各部分截图显示

18

需求分析说明说 3.3.3 目录树伸展的演示

图3-10目录树伸展的演示 3.3.4 缩略图的演示

相关主题
相关文档
最新文档