智能数字相册系统的设计毕业论文.doc

上传人:文库蛋蛋多 文档编号:3945100 上传时间:2023-03-28 格式:DOC 页数:33 大小:2.26MB
返回 下载 相关 举报
智能数字相册系统的设计毕业论文.doc_第1页
第1页 / 共33页
智能数字相册系统的设计毕业论文.doc_第2页
第2页 / 共33页
智能数字相册系统的设计毕业论文.doc_第3页
第3页 / 共33页
智能数字相册系统的设计毕业论文.doc_第4页
第4页 / 共33页
智能数字相册系统的设计毕业论文.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《智能数字相册系统的设计毕业论文.doc》由会员分享,可在线阅读,更多相关《智能数字相册系统的设计毕业论文.doc(33页珍藏版)》请在三一办公上搜索。

1、摘 要随着计算机和数码设备的普及,数字图片资源已成为我们日常生活中的一个重要部分,对于日益增多的图片资源,如何更好的存储和有效检索已成为人们面临的一个新的课题,于是电子相册应运而生。该系统和一般的数字相册系统相比,更具有一定的智能性。例如:当用户需要某幅相片时,可以通过简单的人机交互,或者根据用户的使用记录,自动推荐出用户可能需要的图像。本文介绍基于.NET平台开发的基于B/S模式的智能数字相册的具体实现。系统的主要开发语言为C#,应用了XML、Ajax等技术,结合了目录管理与SQL Server数据库管理。同时采用基于文件方式的图像存储,即图像文件以文件形式存放于指定的计算机目录下,在数据库

2、表中只反映图像数据文件的存储路径及各种属性,这种存储方式缩小了数据库的容量,对图像的操作和使用都十分方便。对于数字相片的录入,检索等功能的实现,系统采用了当今流行的Ajax技术,其改变了传统的客户端与服务器端交互的方式,使得用户无需等待数据刷新,即可执行其他的操作,所有的数据处理都在后台进行,提高了用户体验。系统的主要功能包括:用户登录与用户管理、图像的导入和显示,根据关键字检索图像,根据图像的分类浏览相册及改变相册的风格。关键词: Ajax; .NET; 电子相册AbstractWith the popularity of computers and numeral devices, the

3、 resources of digital photos have become important parts of our daily life. As for the growing number of images, how to keep and retrieval them effectively is the facing problem. As a result, e-album came into being. Compared with other e-albums, this new system attend to be more intellect. For exam

4、ple, if you want to find out one picture from the album, you could choose to contact with your computer. Also, you could wait the system to recommend according your records, then you will find out the image you want. At the same time, if you want to look though some related pictures, you could input

5、 some keywords, then your pictures will come into being immediately.This paper will introduce you the intelligent e-album, which is developed with B/S model and is based on .NET platform .The e-album is developed in C# language, applied with XML and Ajax technology, combined with the management of c

6、atalogue and SQL Server. Pictures in the e-album are storaged based on files, that is pictures are storaged at the given catalogue as files not images. At the same time, only the storage location and attributes of pictures are written in the database, which makes the database smaller .Therefore, it

7、is convenient to users. For the loading and retrieval, Ajax is used in the e-album. This most popular technology changes the traditional pattern between client and server, allowing replacing data without renewing the whole page. All the processing work is done in the background, which is quite conve

8、nient to users.The e-album includes the login and management of users, the import and display of images, searching images according to some key words. Looking though pictures of diffirent catalogy is also included.Key words: Ajax; .NET; E-album目 录1 绪论11.1 研究的意义及目的11.2 国内外文献综述11.3 研究内容12 相关技术22.1 Aja

9、x技术概述22.1.1 Ajax技术的含义22.1.2 Ajax技术的特点22.1.3 Ajax开发的关键技术22.2 .NET Framework42.2.1 .NET框架结构42.2.2 ASP.NET技术42.2.3 ASP.NET命名空间52.2.4 ADO.NET技术62.3 本章小结83 智能数字相册系统的设计93.1 总的设计目标93.2 需要解决的重点问题93.3 系统数据结构的设计103.4 系统功能设计103.4.1 图片管理113.4.2 图片检索123.4.3 图片浏览163.5 本章小结194系统实现与测试204.1 系统开发环境与工具204.1.1 Visual S

10、tudio 2008204.1.2 SQL Server 2005214.2 系统运行环境214.3 实验结果224.3.1 用户登录224.3.2 用户注册224.3.3 更改用户信息234.3.4 浏览相片244.3.5检索相片244.3.6 上传相片264.4 本章小结265 结论275.1 总结275.2 展望27参考文献28致 谢291 绪论1.1 研究的意义及目的随着人们生活水平的逐步提高,旅游成了大家必不可少的放松方式,每当笔者走到一个美丽的景点,就会忍不住拿起数码相机照上几张留做回忆。虽然照片最后会存入到自己的电脑里,但是时间一长、照片一多,这些有着勾起回忆的资料,就会显得杂乱

11、无章,即不方便欣赏,也不方便管理。而电子相册具有欣赏、传播方便,界面美观等特点,可以很好的管理所存入的照片,不失为欣赏、保存照片的最佳工具。1.2 国内外文献综述智能数字相册是一种应用性较强的图像管理软件,也是时下最流行的一种网络元素,它可以应该在很多的领域,例如时下最流行的空间及博客就应用到了这一技术,而且受到大多数网友的认可和追捧。其以静态照片为素材(获得源方式为扫描仪扫描、数码相机拍摄等),配合动感的背景、前景和字幕等视频处理的特殊效果,配上音乐就可制作成电子相册。制作好的电子相册可以在电脑上,各类影碟机上,以及手机和MP4里观看,这是数字相册技术发展到今天的一个新的突破,即不再像传统那

12、样,只能在电脑上或在影碟机上观看了。并且还可以通过手机将自己的个性化MTV发送给远方的亲朋好友们分享。当然,如果考虑到长期保存的话,制作成电子相册光盘那是最好的选择,它可保存100多年之久,标准VCD、SVCD、DVD格式,兼容性好,通过影碟机即可与家人、朋友、客户观赏,若保存在硬盘上,也便于随时调阅、欣赏,永久保存。1.3 研究内容该系统比一般的数字相册系统而言,更具有一定的智能性,例如:当用户需要某幅相片时,可以通过简单的人机交互,或者根据用户使用记录,自动推荐出用户可能需要的图像。该智能数字相册系统是一种基于B/S架构的系统,它采用ASP.NET开发,采用Ajax技术缩短了网络的延迟,节

13、约了用户的时间。本系统所研究的是从数字相册的管理到相册的生成等一系列的问题,大致分为:图像的导入和显示、数据库索引的建立、根据关键字检索图像、图像的分类等。2 相关技术2.1 Ajax技术概述2.1.1 Ajax技术的含义Ajax 技术是Asynchronous JavaScript And XML(异步 JavaScript和 XML)的英文缩写,它不是一种单独的技术,而是一种融合了多项现有的成熟的技术集合。这种技术集合发挥了其中每一种技术的独特之处,糅合起来便形成了一种功能强大的新技术1。Ajax使用通信技术发送和接收对服务器的异步请求/响应,然后利用显示技术处理响应。Ajax技术主要是一

14、种客户端技术,是一种以浏览器为中心的开发框架,是一种新的Web体系结构,是Web 2.0的核心技术2。Ajax的工作原理相当于在客户和服务器之间加了个中间层,使用户操作与服务器响应异步化。这样把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担。2.1.2 Ajax技术的特点Ajax技术的核心理念在于使用XMLHttpRequest对象发送异步请求。它使XHTML和 CSS实现基于各种标准的页面呈现,使用文档对象模型(Document Object Model)实现动态显示和交互,使用XML和XSLT操作数据和实现数据交换,使用XMLHttpRequ

15、est实现异步数据检索和读取,最后使用JavaScript将所有数据进行绑定和处理。与传统Web页面需刷新的“瘦客户端”不同,Ajax提供的是无需完全刷新页面、近乎桌面应用、丰富多彩的“富客户端”用户体验。2.1.3 Ajax开发的关键技术 Ajax技术实际上是由JavaScript、XHTML、CSS、DOM模型、XML、XSLT和XMLHttpRequest对象等七种不同技术组成的一种技术集合和综合应用。Ajax技术开发者可以使用XHTML和CSS实现数据信息的统一化、标准化呈现,使用DOM模型实现浏览器端丰富的动态显示效果以及与服务器端的交互,使用XML和XSLT进行浏览器端和服务器端的

16、数据信息交换与处理3,使用 XMLHttpRequest对象进行浏览器端和服务器端的异步数据读取,使用JavaScript实现对所有数据进行整合。XMLHttpRequest对象和JavaScript是实现Ajax应用必不可少的核心技术,其它五项技术在每一个Ajax应用中不一定都会用到,主要依据开发的实际需要而定。 下面介绍本系统中应用到的Ajax开发的关键技术:JavaScript,XMLHttpRequest对象以及CSS层叠样式表。 JavaScript是一种基于对象(object)和事件驱动(Event Driven)并具有安全性能的、可以与HTML标记语言混合使用的解释性编程语言,其

17、源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户端,由浏览器解释执行,用它编写的程序可以在浏览器的支持下实现跨平台运行4。JavaScript在编程风格上主要具有如下特征:(1) 引入for和if等控制语句使程序效率化;(2) 目标模块(Document、Math、Date和文字列模块等)的导入使程序模块化;(3) 网页、Frame和Window的管理增强了网页设计的技巧;(4) OnClick、OnChange等事件处理的实现使网页可以在客户端作动态响应;(5) Timer处理的实现可以实现动态网页;(6) 对客户端数据输入输出对话框的实现;(7) Image目标模

18、块对应的图像动态操作。在Ajax中,JavaScript已经从默默无闻的后台状态完全转移到了前台,发挥着巨大的作用。JavaScript是整个Ajax的核心部分,它使开发人员能够运用编程语言来控制浏览器客户端的行为。事实上Ajax的其它组成部分都提供了JavaScript的编程接口,例如,DOM模型将文档结点表现为对象,并定义了这些对象具有的方法和属性;CSS也可以作为节点的一个属性由JavaScript进行控制。JavaScript脚本充分发挥了其脚本语言的特点,使用代码控制着DOM模型、XML、CSS和XHTML等技术的行为,因此可以将JavaScript看作是Ajax中的黏合剂,它使Aj

19、ax的各个组成部分协同工作,一起完成需要实现的功能。XMLHttpRequest对象是浏览器中已定义好的对象,它是Ajax技术的核心组成部分,JavaScript通过它和服务器之间进行异步通信,并通过它来解析从服务器返回的XML文件。Ajax应用的特点之一就是可以通过XMLHttpRequest对象发送请求向服务器传输或者读写数据,可以像桌面应用程序一样,只同服务器进行数据层面的交换,而无需刷新页面,也不用每次都将数据处理的工作提交给服务器来做。这样既减轻了服务器的负担又加快了响应速度、缩短了用户等待时间。需要注意的是,在定义XMLHttpRequest对象时,IE浏览器和其它浏览器的定义方式

20、有所不同。XMLHttpRequest对象是通信的基础。是Ajax技术开发的关键,它能够提供异步通信来完成在很多传统Web开发中无法完成的工作。XMLHttpRequest对象由JavaScript创建并使用,客户端可以从服务器端获取需要的信息,通过与DOM和CSS的结合,实现局部刷新;同时还可以通过XMLHttpRequest对象异步提交信息,将输入的数据在后台提交到服务器而无需刷新。CSS层叠样式表是为了弥补HTML超文本标记语言在格式修饰中的不足,同时也是为了能够实现页面格式的批量动态更新5。为了进一步丰富页面的动态效果,通过使用脚本语言与CSS结合,动态控制页面元素的位置、色彩等属性。

21、CSS提供了独立的手段来控制页面的表现6,因此可以让Ajax开发人员更专注于开发应用逻辑的相关代码,他们只需提供合理的文档结构即可,而不必关注表现,这在一定程度上简化了Ajax的开发。同时,CSS还有助于结合Ajax完成一些特殊的功能,例如,要实现树状菜单的折叠功能,一种方法是使用DOM模型在展开时添加所有子结点,折叠时移除所有子结点。但这显然是效率低的做法,使用CSS可以让其变得非常简单,只要通过CSS设置子结点是否显示即可。2.2 .NET Framework微软公司将.NET Framework(框架)定义为:支持生成和运行下一代应用程序和XML Web Services的内部Windo

22、ws组件7。.NET框架旨在实现下列目标:提供一个统一的面向对象的开发环境。这个开发环境支持本地代码的开发,远程对象程序的开发,或者在本地执行但分布在Internet上的各种应用程序的开发;更好的解决开发应用的版本和部署版本之间的冲突;通过框架的解决方案,可以调用未知的或第三方的代码,实现已有系统的移植以及代码的可重复使用;使开发人员在开发各种不同类型应用的时候,有一样的开发体验,如基于Windows的应用程序和基于Web的应用程序;按照行业标准生成所有通信,以保证基于.NET Framework的代码可与任何其他代码集成。2.2.1 .NET框架结构.NET Framework主要由两个重要

23、的组件构成:公共语言运行库CLR和.NET类库。公共语言运行库是.NET框架的基础。可以将运行库看做是一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且强制实施严格的类型安全,可提高安全性和可靠性的其他形式的代码准确性。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码8。.NET框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面应用程序,也包括基于ASP.NET所提供的应用程序,如Web窗体和XML Web Services。2.2.2 ASP.NET技

24、术ASP.NET 技术是.NET框架提供的一个统一Web开发模型,它使用尽可能少的代码生成企业级Web应用程序所必须的各种服务。ASP.NET是.NET框架中的一个重要组成部分。当编写ASP.NET应用程序的代码时,可以访问.NET Framework中的类,也可以使用公共语言运行库(CLR)兼容的任何语言来编写应用程序的代码。可以使用ASP.NET网页作为Web应用程序的用户界面及后台逻辑部分。ASP.NET网页在任何时候浏览器或者客户端设备中向用户提供信息,并使用服务器端代码来实现应用程序逻辑。ASP.NET有下列特点9:(1) 基于Microsoft ASP.NET技术。在该技术中,服务

25、器上运行的代码动态的生成到浏览器或客户端设备的网页输出;(2) 兼容所有浏览器或移动设备。ASP.NET网页自动为样式、布局等功能呈现正确的、符合浏览器的HTML。此外,还可以将ASP.NET网页设计为在特定浏览器(如IE7.0)上运行并利用浏览器特定的功能;(3) 兼容.NET公共语言运行库所支持的任何语言,其中包括Microsoft Visual Basic、Microsoft Visual C#、Microsoft J#和Microsoft Jscript .NET;(4) 基于Microsoft .NET Framework平台,它提供了Framework的所有优点,包括托管环境、类型

26、安全性和继承;(5) 具有灵活性,可以在开发的时候向页面添加用户创建的控件和第三方控件。在ASP.NET网页中,用户界面编程分为两个部分:可视组件和逻辑。可视组件由一个包含静态标记(如HTML或 ASP.NET服务器控件或两者)的文件组成。ASP.NET可视组件用来显示网页中的静态文本和控件。ASP.NET网页的逻辑由代码组成,这些代码与页面可视组件进行交互。代码可以驻留在页的标记脚本块或者单独的类中。如果代码在单独的类文件中,则该文件称为“代码隐藏”文件。代码隐藏文件中的代码可以使用Visual Basic、Visual C#、Visual J# 或 Jscript .NET编写。在ASP.

27、NET中,改变了ASP的脚本编程的概念,在Web 应用的开发中引入的对象化的概念,使得WebForm的开发更接近于WinForm的开发,同时ASP.NET中还提供大量的服务端控件。各种控件的使用大大的简化及规范了各种功能的实现,使得开发人员得以从脚本的编写中摆脱出来,去完善Web页面的业务逻辑的开发。2.2.3 ASP.NET命名空间ASP.NET命名空间全部位于System.Web下,它一共包含了七个命名空间。这些命名空间提供了页面开发中的页面对象、缓存、配置、安全以及Web控件等几方面的类。 (1) System.Web该命名空间包含页面基本操作的类,可以利用这些类完成浏览器和Web服务器

28、之间的通信。(2) System.Web.UI.HtmlControls 该命名空间包含的类用于使用服务器代码控制HTML元素。(3) System.Web.UI.WebControls该命名空间下包含的类可用于在网页上常见Web 服务器控件。Web控件在服务器上运行,并包含窗体控件(如按钮和文本框)以及特殊用途的控件(如Calendar控件)。这些类能够以编程方式控制网页上的元素。(4) System.Web.Caching该命名空间提供用于在服务器上缓存常用资源的类。ASP.NET缓存技术可以将页面信息存储到服务器的内存中,无论是数据对对象还是页面的某些部分,通过使用缓存技术,使得用户在重

29、新访问页面的时候,对这些资源进行重复使用,从而提供了网站的访问性能。(5) System.Web.Configuration该命名空间包含用于配置ASP.NET的类。配置文件是程序中的一个重要组成部分,它用来描述程序中的一些特定属性,由于这些属性的变化性比较强,所以可以通过配置文件的更改来使程序的结果发生变化。在.NET框架中,配置文件就是一个XML文件,开发人员可以通过配置文件接口来获取相关的配置文件信息,系统管理员可以通过更改配置文件来改变应用程序的控制策略,使用配置文件最根本的好处是它的灵活性,不会因为修改了配置文件而需要重新编译程序。(6) System.Web.Security该命名

30、空间包含的类用于在Web服务器应用程序中实现ASP.NET安全性。ASP.NET的安全是指保护网站的安全性,防止非法用户进行恶意的破坏。对于Web开发人员来说,保护网站的安全是一个关键而又复杂的问题。(7) System.Web.Services 该命名空间包含可用于ASP.NET创建XML Web Services 的类。2.2.4 ADO.NET技术ADO.NET是一组向 .NET程序员公开数据访问服务的类。ADO.NET为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML和应用程序数据的访问,因此是 .NET Framework中不可缺少的一部分。ADO.NET支

31、持多种开发需求,包括创建由应用程序、工具、语言或Internet浏览器使用的前端数据库客户端和中间层业务对象。ADO.NET对Microsoft SQL Server和XML等数据源以及通过OLE DB和XML公开的数据源提供一致的访问。数据共享使用者应用程序可以使用ADO.NET来连接到这些数据源,并检索、处理和更新所包含的数据。ADO.NET通过数据处理将数据访问分解为多个可以单独使用或一前一后使用的不连续组件。ADO.NET包含用于连接到数据库、执行命令和检索结果的.NET Framework 数据提供程序。您可以直接处理检索到的结果,或将其放入ADO.NET DataSet对象,以便与

32、来自多个源的数据或在层之间进行远程处理的数据组合在一起,以特殊方式向用户公开。ADO.NET DataSet对象也可以独立于.NET Framework数据提供程序使用,以管理应用程序本地的数据或源自XML的数据。ADO.NET类在System.Data.dll中,并且与System.Xml.dll中的XML类集成。当编译使用System.Data命名空间的代码时,请引用System.Data.dll和System.Xml.dll。ADO.NET向编写托管代码的开发人员提供了类似于ActiveX数据对象(ADO)为本机组件对象模块(COM)开发人员提供的功能。(1) ADO.NET设计目标随着

33、应用程序开发的发展演变,新的应用程序越来越松散地耦合,通常基于Web应用程序模型。如今,越来越多的应用程序使用XML来编码要通过网络连接传递的数据。Web应用程序将HTTP用作在层间进行通信的结构,必须显式处理请求之间的维护状态。这一新模型大大不同于连接、紧耦合的编程风格,此风格曾是客户端/服务器时代的标志。在此编程风格中,连接会在程序的整个生存期中保持打开,而不需要对状态进行特殊处理。在设计符合当今开发人员需要的工具和技术时,Microsoft认识到需要为数据访问提供全新的编程模型,此模型是基于.NET Framework生成的。基于.NET Framework这一点将确保数据访问技术的一致

34、性,因为组件将共享通用的类型系统、设计模式和命名约定。设计ADO.NET的目的是为了满足这一新编程模型的以下要求:具有断开式数据结构;能够与XML紧密集成;具有能够组合来自多个不同数据源的数据的通用数据表示形式;以及具有为与数据库交互而优化的功能,这些要求都是.NET Framework固有的内容。在创建ADO.NET时,Microsoft具有以下设计目标:利用当前的ActiveX数据类型(ADO)知识;支持N层编程模型;集成XML支持。(2) 在ADO.NET中连接和检索数据库任何数据库应用程序的一项主要功能是连接数据源并检索数据源中包含的数据。ADO.NET 的 .NET Framewor

35、k数据提供程序充当应用程序和数据源之间的桥梁,使您可以执行命令以及使用 DataReader 或 DataAdapter检索数据。在 ADO.NET中,通过在连接字符串中提供必要的身份验证信息,使用Connection 对象连接到特定的数据源。您使用的Connection对象取决于数据源的类型。.NET Framework 提供的每个.NET Framework数据提供程序包含一个Connection对象:OLE DB .NET Framework 数据提供程序包括一个 OleDbConnection对象,SQL Server .NET Framework 数据提供程序包括一个SqlConne

36、ction对象、ODBC .NET Framework数据提供程序包括一个 OdbcConnection对象,Oracle .NET Framework数据提供程序包括一个OracleConnection对象。当建立与数据源的连接后,可以使用Command对象来执行命令并从数据源中返回结果。您可以使用Command构造函数来创建命令,该构造函数采用在数据源、Connection对象和Transaction对象中执行的SQL语句的可选参数。也可以使用Connection的 CreateCommand方法来创建用于特定连接的命令。您可以使用CommandText属性来查询和修改Command对象的

37、SQL语句。(3) 使用SQL Server .NET Framework数据提供程序通过 SQL Server .NET Framework数据提供程序,可以使用自己的内部协议访问 SQL Server 7.0 版或更高版本的数据库。该数据提供程序设计的功能与OLE DB、ODBC 和 Oracle的.NET Framework数据提供程序的功能类似。需要注意的是,要使用 SQL Server .NET Framework数据提供程序,应用程序必须引用 System.Data.SqlClient命名空间。2.3 本章小结本章主要介绍了开发系统所需了解的背景知识,主要包括Ajax技术,.NET

38、 Framework。它们对下一章系统的整体设计起到了一定的参考作用,只有在充分熟悉了本章内容的基础上才能轻松地进入下一章的阅读。3 智能数字相册系统的设计3.1 总的设计目标本次设计的总体目标是用高效、灵活的C#语言设计出操作性、实用性好的电子相册软件,并能够实现图像的导入和显示、数据库索引的建立、根据关键字检索图像、图像的分类等功能。该系统比一般的数字相册系统而言,更具有一定的智能性,例如:当用户需要某幅相片时,可以通过简单的人机交互,或者根据用户使用记录,自动推荐出用户可能需要的图像,使得用户可以获得一款理想的图像管理软件。3.2 需要解决的重点问题智能数字相册系统的特殊性使得软件的设计

39、并不容易,主要表现在:(1) 图像数据的存储问题图片文件不同于文本文件,它以二进制方式存放于电脑中,因此实现图片管理主要有以下两种方式:第一种是将图片直接放入数据库对应的表中,这种方式的优点是实现了图库合一,但这种存储方式对数据库的容量和性能要求较高;另一种方式是将图片以文件方式存放到服务器上,并将与图片相关的信息和路径存入对应的数据表中,这种方式缩小了表的大小,同时提高数据库操作速度,故通常被基于B/S的系统所广泛采用10。本文以第二种方式为基础,详细描述如何使用ASP.NET来构建智能数字相册系统。(2) 图像的检索图像的检索包括基于关键词的检索和基于内容的检索两种方式。基于关键词的检索是

40、传统的图像检索方式。对图像信息用关键词或文本方式来进行相应的描述是不精确的,因为不同的人对同一幅图像或同一个人在不同的时间对同一幅图像会有不同的理解,对不同的图像的描述也很难遵循相同的标准。因此当用户输入的检索关键词与系统中对图像的描述信息不一致时,就检索不到需要的图像,从而导致检索的失败,同时随着图像信息的剧增,其查找效率也迅速降低。基于内容的检索式近年来研究的重点,也提出了基于图像纹理、基于图像直方图、基于图像色彩控件等多种检索方式。但是,基于内容的图像检索系统具有相当的难度,目前还没有开发出可以针对任意图像的,真正实用的基于内容的图像检索系统,有的基于内容的图像检索系统只是针对某一类特殊

41、的图像有效。随着技术的进步,基于内容的图像检索是发展趋势11。开发本系统的目的是管理珍贵的历史资料图片,每幅图像的背景资料或相关信息也是需要保存和进行图像检索的重要依据,而且需要管理的图像五花八门,各种类别、格式、质量、大小的图像的存在使得在短时间内开发出基于内容的图像检索系统几乎是不可能的,所以本系统采用基于关键词的检索方式。3.3 系统数据结构的设计数据库结构设计是在完成了描述系统各种数据之间的依赖关系和信息分类的基础上,将各种信息转换成相应的数据项定义表。数据项定义表的作用主要是定义每个表的表名、表中各字段的名称、数据类型长度和是否允许空,但在不同的数据库,数据类型的表示符号和长度有所差

42、别。本系统的数据库建表如下:(1) 图片信息表,用于存放与图片相关的信息,包括图片的编号、图片的上传用户、图片的分类、图片名称、图片的存放路径、上传时间以及图片的描述信息等。表3.1 图片信息表字段名称数据类型说明ALBUM_ID自动编号图片编号username文本上传用户名ALBUM_CATEGORY文本图片分类ALBUM_NAME文本图片名称ALBUM_URL文本图片存储地址postTime日期上传时间ALBUM_DESC文本图片描述(2) 用户信息表,用于存放用户的信息,包括用户名、用户密码、最近一次的登录时间、允许登录时间、是否锁定、联系邮箱、是否公开以及身份证号码(可选字段)。表3.

43、2 用户信息表字段名称数据类型说明username文本用户名userpass文本用户密码regTime日期最近一次的登录时间letLoginTime日期允许登录时间isLock比特是否锁定eMail文本联系邮箱isOpen比特是否公开userPost文本身份证号码3.4 系统功能设计智能数字相册系统需要实现的功能包括用户的管理,以及图片的管理和使用等。具体来讲,它包含用户管理中常见的注册、登录、修改用户信息;图片的管理和使用功能主要包括图片的上传、浏览、搜索、查看图片详细信息等操作。其总体结构如下图3.1所示。图3.1 智能数字相册系统功能结构图3.4.1 图片管理图片管理实现的关键是将图片上

44、传到服务器,这涉及到原始图片的上传、生成原始图片的缩略图以及将与图片相关的信息保存到数据库等重要细节。随着互联网的发展,各网站特别是一些BBS站点为丰富资源,通常会提供图像文件的上传及显示的功能。由于用户提供的文件在格式及大小方面都不一致,尤其是图像的大小。不合适的图像大小可能会改变网页的排版格式,使网页变得不雅观,而较大的文件长度又会减慢网页的响应。另外,在Web开发中需要对用户上传的图像文件建立相应的缩略图,这些功能的实现需要对图像文件进行处理,主要是图像文件的格式及尺寸的调整。虽然在HTML标记语言中可以在img标记中加入width及height属性来控制图像的显示大小,但HTML语言不

45、能对图像大小进行判断,只能将所有的图像以相对固定的格式来显示,不能灵活的满足多方面的要求。传统方式对于这种情况的判断处理通常是用JavaScript 或VBScript 来实现,ASP.NET的使用为灵活实现图像的处理提供了新的途径。ASP.NET的面向对象编程的开发方式相对于传统的脚本编程方式比较适合Web站点功能模块化的需要12。本节针对在ASP.NET环境下实现图像文件上传进行初步的探讨。在模块的实现过程中,用户首先打开文件夹,选择准备上传的图片文件,系统提供预览原始图片的功能。然后点击上传按钮,系统调用上传过程并将生成的缩略图保存到服务器上相应的目录中。缩略图保持原始图片的纵横比并设定

46、最大边长为100像素。图片的名称从URL中提取文件名,图片的后缀保持原有后缀不变。同时,系统自动将与该图片相关的信息保存到数据库中,图片本身则保存在程序指定的文件夹中。在图片上传成功后,图片的信息(如文件类型、客户端文件地址、文件名、扩展名) 将会在上传图片页面显示出来。在ASP.NET中可以使用HTML控件和标准控件:打开文件按钮( file类型input ,属于HtmlInputFile 类) 和提交按钮(Button类型)来实现文件的上传功能。具体的用法如下: 在打开文件按钮中增加了响应事件Preview(this.value),用来实现上传图片的预览功能。在提交按钮(Button类型)

47、中增加runat =server,用以标记为在服务器端运行。为将上传的文件在服务器上进行保存,可以使用:String fileName = System.IO.Path.GetFileName(postedFile.FileName);postedFile.SaveAs(System.Web.HttpContext.Current.Request.MapPath(Files/) + fileName);HtmlInputFile的成员PostedFile属于HttpPostedFile类,该成员提供对上传文件的操作接口,本例使用HttpPostedFile的成员函数SaveAs对上传文件进行保存,同时将上传图片的信息写入数据库。本

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号