《图像处理系统详细设计说明书26970.pdf》由会员分享,可在线阅读,更多相关《图像处理系统详细设计说明书26970.pdf(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 案卷号 日期 图像处理系统 详细设计说明书 作 者:YOUNG REGIN GROUP 团队 完成日期:2016.8。24 签 收 人:签收日期:修改情况记录:版本号 修改批准人 修改人 修改日期 签收人 1。0 杨开 2016。823 1.1 杨开 2016。824 1/16 目录 1 引言.1 1。1 编写目的.1 1。2 背景.1 1.3 定义.2 1.4 参考资料.2 2 程序系统的结构.错误!未定义书签。3 系统登陆设计说明.3 3。1 主窗口设计.3 3.2 图像旋转模块功能设计.4 3。3图像缩放模块设计.错误!未定义书签。3.4 图片水印效果模块设计.14 3。5 照片版式处
2、理模块设计.14 3.6 流程逻辑.错误!未定义书签。4 位图数据的存储形式.5 限制条件.3 6 测试计划.3 1 引言 1.1 编写目的 本详细设计说明书主要目的是对图像管理系统的功能设计进行详尽的说明。本说明书主要写了图像管理系统功能模块的详细设计,为后来的开发提供依据与参考。详细设计说明书面向人员有:程序设计人员、数据库设计人员,质量检测人员。1。2 背景 a 项目名称:图像管理系统 详细设计说明书 2/16 b 本项目的任务提出者:西安软件服务外包学院 开发者:YOUNG REGIN GROUP 团队 1。3 定义 本系统属于开发小型的图像处理软件,主要用于实现图像的显示与批量转换操
3、作。实现各种图像格式的显示。支持图像的单一转换与批量转换。实现位图的各种常规操作。1。4 参考资料 C+程序设计,谭浩强,清华大学出版社;Visual C+项目开发案例全程实录,梁水,李伟明著,清华大学出版社。2 程序系统的结构 这是“图像管理系统”的整体系统结构图。图像锐化处理 图像反色处理 图像旋转 主窗体 图像处理模块 退出系统 打开位图 批量转换与处理 图像浮雕效果 位图转换成JPEG JPEG转换成位图 水印效果批量处理 位图转换为PNG 位图转换成GIF GIF转换成位图 PSD文件浏览 PSD文件批量转换 PSD文件管理 照片处理 水印效果批量处理 位图转换成GIF 详细设计说明
4、书 3/16 3 系统整体及模块显示设计说明 3。1 主窗口设计 在这个系统里,主要实现用户登录进入系统后可以查询和添加相关信息.工作区菜单代码:m_wndToolBar。GetToolBarCtrl().SetImageList(&m_ImageList);m_wndToolBar。SetButtonText(0,锐化处理”);m_wndToolBar.SetButtonText(1,”反色处理”);m_wndToolBar。SetButtonText(2,”图像旋转);m_wndToolBar。SetButtonText(3,图像平移”);m_wndToolBar。SetButtonTex
5、t(4,”图像缩放”);m_wndToolBar.SetButtonText(5,水印效果);m_wndToolBar。SetButtonText(6,”位图转换 JPEG);m_wndToolBar.SetButtonText(7,JPEG 转换位图”);m_wndToolBar。SetButtonText(8,”水印批量处理);m_wndToolBar.SetButtonText(9,PSD 文件浏览);m_wndToolBar。SetButtonText(10,PSD 批量转换);m_wndToolBar。SetButtonText(11,”照片版式处理);设置状态栏,关联图标资源:UI
6、NT nID;/控制状态栏里面的分栏 m_wndStatusBar。SetPaneInfo(0,nID,SBPS_STRETCH|SBPS_NOBORDERS,100);/返回值存 nID 中 m_wndStatusBar.SetPaneText(0,”就绪);m_wndStatusBar.SetPaneInfo(1,nID,SBPS_NORMAL,100);m_wndStatusBar。SetPaneText(1,大写);m_wndStatusBar。SetPaneInfo(2,nID,SBPS_POPOUT,100);m_wndStatusBar。SetPaneText(2,数字);/加载
7、图像资源 详细设计说明书 4/16 m_ImageList.Create(32,32,ILC_COLOR32|ILC_MASK,1,1);m_ImageList.Add(:AfxGetApp()-LoadIcon(IDI_ICON3));m_ImageList。Add(:AfxGetApp()-LoadIcon(IDI_ICON1);m_ImageList.Add(:AfxGetApp()-LoadIcon(IDI_ICON2);m_ImageList.Add(::AfxGetApp()LoadIcon(IDI_ICON4));m_ImageList.Add(::AfxGetApp()Load
8、Icon(IDI_ICON5));m_ImageList。Add(::AfxGetApp()LoadIcon(IDI_ICON6));m_ImageList.Add(:AfxGetApp()LoadIcon(IDI_ICON7);m_ImageList。Add(::AfxGetApp()-LoadIcon(IDI_ICON8));m_ImageList.Add(:AfxGetApp()LoadIcon(IDI_ICON9);m_ImageList。Add(::AfxGetApp()-LoadIcon(IDI_ICON10);m_ImageList.Add(::AfxGetApp()LoadIc
9、on(IDI_ICON11);m_ImageList.Add(::AfxGetApp()-LoadIcon(IDI_ICON12);3.2 图像旋转模块功能设计 1。添加一个对话框类,类名为 CImageRota。窗口如下:2。向对话框中添加按钮、文本框、单选按钮、滑块、图片控件。3.设置主要控件属性,如下表所示:4.处理事件:void CImageRota::OnBtLoad()/TODO:Add your control notification handler code here CFileDialog flDlg(TRUE,,”,OFN_HIDEREADONLY|OFN_OVERWRI
10、TEPROMPT,”位图文件|*.bmp|”,this);if(flDlg.DoModal()=IDOK)详细设计说明书 5/16 CString csFileName=flDlg.GetPathName();m_SrcFile=flDlg.GetPathName();m_BmpName.SetWindowText(csFileName);if(m_hBmp!=NULL)DeleteObject(m_hBmp);m_hBmp=NULL;m_hBmp=(HBITMAP)LoadImage(NULL,csFileName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);if(m
11、_hBmp)m_Image。SetBitmap(m_hBmp);m_bLoaded=TRUE;CFile file;file。Open(csFileName,CFile:modeRead);file.Read(m_bmFileHeader,sizeof(BITMAPFILEHEADER));file。Read(&m_bmInfoHeader,sizeof(BITMAPINFOHEADER);int szPalette=0;if(m_bmInfoHeader。biBitCount!=24)详细设计说明书 6/16 file.Close();MessageBox(”请选择真彩色位图!”,提示);r
12、eturn;if(m_bmInfoHeader.biSizeImage=0)int externWidth;/计算源位图每行使用的字节数 externWidth=m_bmInfoHeader.biWidth*3;if(externWidth%4!=0)externWidth=4 externWidth 4;else externWidth=0;m_bmInfoHeader.biSizeImage=m_bmInfoHeader。biHeight*(m_bmInfoHeader。biWidth3+externWidth);int nBmpData=m_bmInfoHeader.biSizeImag
13、e;if(m_pBmpData!=NULL)delete m_pBmpData;m_pBmpData=NULL;详细设计说明书 7/16 m_pBmpData=new BYTEnBmpData;file.ReadHuge(m_pBmpData,nBmpData);file。Close();int sizeofbuffer=m_bmInfoHeader.biWidth*m_bmInfoHeader。biHeight*4;int externWidth;externWidth=m_bmInfoHeader.biWidth 3;if(externWidth 4!=0)externWidth=4-ex
14、ternWidth 4;else externWidth=0;int k=0;BYTE*m_pImageTempBuffer=new BYTEsizeofbuffer;for(int n=m_bmInfoHeader。biHeight-1;n=0;n-)for(UINT m=0;m GetCheck();详细设计说明书 10/16 if(nState)/预定角度 for(int nID=IDC_ROTATE45;nID=IDC_ROTATE270;nID+)pButton=(CButton)GetDlgItem(nID);if(pButton!=NULL)nState=pButtonGetCh
15、eck();if(nState)CString csText;pButton-GetWindowText(csText);int nPos=csText.Find();nDegree=atoi(csText.Left(nPos));break;else /固定角度 详细设计说明书 11/16 UpdateData(FALSE);nDegree=m_nDegree;/确定旋转角度 RotationImage(&m_bmInfoHeader,nDegree);BYTE byByteAlign;/位图行字节对齐 UINT outHeight=m_bmInfoHeader.biHeight;UINT
16、outWidth=m_bmInfoHeader。biWidth;BYTE pBmpData =new BYTE m_bmInfoHeader.biSizeImage;memset(pBmpData,0,m_bmInfoHeader.biSizeImage);BYTE pListData=m_pBmpData+(DWORD)outHeight1)*outWidth*4;if(outWidth 4!=0)byByteAlign=4-((outWidth*3L)4);else byByteAlign=0;BYTE byZeroData=0;BYTE*pTmpData=pBmpData;for(int
17、 y=0;ym_hDC,&m_bmInfoHeader,CBM_INIT,pBmpData,&bInfo,DIB_RGB_COLORS);if(hBmp!=NULL):DeleteObject(hBmp);详细设计说明书 13/16 delete pBmpData;/设置滚动范围 CRect bmpRC,wndRC;m_ImagePanel.GetClientRect(wndRC);m_Image。GetClientRect(bmpRC);m_ImagePanel.OnHScroll(SB_LEFT,1,NULL);m_ImagePanel。OnVScroll(SB_LEFT,1,NULL);
18、m_ImagePanel.SetScrollRange(SB_VERT,0,bmpRC。Height()wndRC.Height();m_ImagePanel.SetScrollRange(SB_HORZ,0,bmpRC。Width()wndRC。Width();8.处理保存按钮事件 3。3 图像缩放模块设计 1.新建一个对话框类,类名为 CStretchImage,界面如下:2.向对话框中添加按钮、静态文本、群组框、滑块、复选框、图片等控件.3设置控件属性如下:4处理、缩放、保存按钮事件。详细设计说明书 14/16 3。4 图片水印效果模块设计 1.实现水印效果主要代码为:2.创建一个对话框
19、类,类名为 CImageWater。3。向对话框中添加按钮、静态文本、群组框、滑块、复选框、图片等控件.界面如下:4设置控件属性如下:5处理、缩放、保存按钮事件。3。5 照片版式处理模块设计 1.创建一个对话框类,类名为 CPhotoHandle。2.向对话框中添加按钮、静态文本、群组框、滑块、复选框、图片等控件。界面如下:3设置控件属性如下:4.处理、缩放、保存按钮事件。3.5 PSD 文件浏览模块设计 1.创建一个对话框类,类名为 CPsdBrowse。2.向对话框中添加按钮、静态文本、群组框、滑块、复选框、图片等控件。界面如下:3设置控件属性如下:4.处理、缩放、保存按钮事件.详细设计说
20、明书 15/16 4 位图数据的存储形式 在进行图像处理时,一个首要的问题是实现对位图数据的直接操作。位图主要由四部分组成,分别为位图文件头、位图信息头、调色板和实际的位图数据如下:,其中,位图文件头对应的结构为 BITMAPFILEHEADER,共占用14 个字节,定义如下:位图信息头对应的结构为 BITMAPINFOHEADER,共占用 40 个字节,定义如下:5 限制条件 1.位图数据每行的字节数必须是 4 的整数倍。2。位图数据是从下向上存储的。3。对于真彩图来说,每一行数据是按照 BRG 颜色顺序排列的.6 测试计划 进入主界面 预期结果 点击图片旋转 进行操作旋转效果 点击图片缩放 进行操作缩放效果 点击水印效果 进行操作水印效果 点击照片版式 进行操作查看效果 点击退出 退出程序