图像数据存储技术.doc_第1页
图像数据存储技术.doc_第2页
图像数据存储技术.doc_第3页
图像数据存储技术.doc_第4页
图像数据存储技术.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图像数据存储技术摘要:,将多媒体信息引入到系统当中,随着数据库应用技术的发展,已经成为人们对现代数据库应用系统的要求之一。本文通过对图像数据的不同存储方式的分析,提出在学生信息系统中以数据库方式存储学生照片的方法,并且使用VB 6.0 中的ADO 数据控件实现了图像数据入库操作及照片的浏览。关键词:信息系统;图像;概述:随着数据库应用技术的发展, 将多媒体信息引入到系统当中,使管理系统功能更强大,界面更美观,信息更丰富,已经成为人们对现代数据库应用系统的要求之一。在学生信息系统中,除了需要将每一名学生的基本数据信息存入系统,还需要将该学生的照片以图像信息的形式存入系统。这样可以随时查看学生的照片,或用来制作学生证等证件,以提高证件的可信度并减少证件照片处理的工作量。图像的数据量要远远大于数据库中存储的普通数据的数据量。因此,组织与管理好图像数据与数据库应用系统的结构、效率、安全性、完整性息息相关。本文给出了一种在学生信息系统中组织与管理图像信息的方法, 并利用ADO 技术设计实现了图像信息的入库及浏览等操作。1.存储图像数据的策略1.1 以文件方式存储图像数据图像信息通常是通过扫描或摄像的方法进入系统的,并且一般的多媒体系统中都采用文件形式存放数据。所以在数据库应用系统中,可以采用文件形式存放图像数据。首先,将每一幅图像组织成一个文件,众多的图像文件形成图像文件集。在学生基础信息表中设置一个存放照片图像文件物理文件名的字段(pFileName), 在该字段中存放每一名学生照片文件的存储路径及文件名。这样就建立起了学生基础信息表与照片文件集之间的关联(如图1 所示)。图1 学生基本信息表与照片文件集之间的关联用该方法存储图像文件的优点是容易实现,编程过程中无须复杂编码,图像信息的引入也不会影响原主数据表(学生基本信息表)的访问效率。但这种图像存储方式的缺点也非常明显。按此方法构造的系统实质上是由数据库系统加上文件系统构成的综合应用系统,其性能从整体上讲已退化为文件系统,因此文件系统的所有缺陷都会在此系统中存在。文件系统的一个主要问题是安全没有保证,任何一个进入计算机系统的人都可以对文件进行各种处理,包括移动、修改甚至删除,而系统无法给予任何保护,系统的数据完整性也就无法得到保证。1.2 以数据库方式组织图像数据SQL Server 2000 是功能强大的关系数据库管理系统。它支持的数据类型多达27 种, 其中ntext、text 和image 类型用于存储BLOB(Binary Large Object 二进制大对象)数据,在单个值中可以存储最大为2GB 的数据量。这一容量完全可以用于存放一张普通的照片。其中的image 类型是用于存储图像数据的理想类型。然而由于图像数据的数据量很大,直接将图像数据引入到主数据表中,将会造成数据库中的主数据表尺寸过大,使系统对主数据表的访问效率降低,响应时间增长。因此,在系统设计中,将学生基本信息与其照片图像信息分别存放在两个表中,并在两个表之间建立相应的关联,实现主数据与图像数据物理上的分离和逻辑上的统一。这样一来,即可以实现以数据库形式管理图像数据,使图像数据享受到数据库管理系统提供的安全性、数据完整性等保护,同时也能够避免图像数据对主数据表的负面影响。图2 数据表的设计以下是在SQL Server 2000 中创建主数据表(SBase)和图像数据表(SPic)的方法。两表之间以学号(sNo)为公共字段,建立一对一联系。CREATE TABLE SBase /* 创建学生基本信息表*/(sNo char(4) NOT NULL, /* 学号字段非空*/sName char(10) NULL, /* 学生姓名字段*/sGender char(1) NULL, /* 学生性别字段*/CONSTRAINT prim_sno1 PRIMARY KEY (sNo) /* 定义sNo 主键约束以及以sNo 为关键字的聚簇索引*/)GOCREATE TABLE SPic /* 创建图像信息表*/(sNo char(4) NOT NULL, /* 学号字段非空*/sPhoto image NULL, /* 照片字段类型为image*/CONSTRAINT prim_sno2 PRIMARY KEY(sNo), /* 定sSNo 主键约束以及以sNo 为关键字的聚簇索引*/CONSTRAINT foreign_sno FOREIGN KEY(sNo)REFERENCES SBase(sNo) /* 定义外键约束,实现参照完整性控制*/)GO2.存取图像信息的方法VB 6.0 是目前比较流行的应用系统开发工具之一。Microsoft在其VB 中加入了创建“健壮”的ActiveX 组件的能力。ActiveX 数据对象ADO 可以方便地实现对SQL Server 2000 数据库的存取等操作。2.1 配置ODBC数据源ODBC(Open Database Connectivity 开放式数据库连接)为使用不同的关系数据库提供了一个统一的程序设计接口。要使用ODBC,首先要配置一个数据源。数据源用来说明到哪儿可以找到应用程序所需要的数据库物理文件,以及使用哪一个ODBC 驱动程序来翻译API 调用。可以通过Windows “控制面板” 中“管理工具” 下的“数据源(ODBC)” 来启动“ODBC 数据源管理器”,添加新数据源,并与SQLServer服务器中相应的数据库进行连接。2.2 照片浏览的实现在VB 中新建工程,并在窗体中添加一个ADO 控件,其名称为Adodc1。对该控件的属性进行配置。首先选择刚刚配置的数据源,并在记录源中使用以下SQL 语句连接主数据表和图像数据表,并选中其中的全部字段:SELECT*FROM SBase X,SPic Y WHERE X.sNo=Y.sNo使用数据绑定控件Text 可以在窗体中显示数据表中的普通数据。使用Image 控件可以显示照片。在窗体中放置一个Image 控件,设置其DataSource属性值为Adodc1,其DataFeild 属性值为sPhoto,以实现在窗体中对照片的浏览。2.3 图像数据入库的实现虽然SQL Server 2000提供了Image类型来存放图像数据,但没有提供将图像数据写入相应字段中的方法。以下的程序设计可以将图像数据写入相应的字段。首先在窗体中放置一个CommonDialog 控件。为Image 控件的Click 事件添加代码,单击Image 控件时,通过CommonDialog 控件打开通用对话框,在该对话框中选中要添加到表中的照片图像,并将该图像的数据写入数据库。Option ExplicitAPI 声明部分,该函数的作用是将源内存块复制到指定的内存空间Private Declare Sub CopyMemory Lib kernel32 Alias RtlMoveMemory (Destination As Any, Source As Any, ByVal Length AsLong)Image1 控件的单击事件,通用对话框选定照片文件Private Sub Image1_Click()With CommonDialog1.DialogTitle = 文件选择.Filter = 点阵图(.bmp)|*.bmp|JPEG 图(.jpg)|*.jpg|全部文件(*.*)|*.*.CancelError = True.ShowOpen调用用户自定义过程将照片文件存储到数据库中Set Image1.Picture = LoadPicture(.FileName)Save Adodc1.Recordset, .FileNameEnd WithEnd Sub自定义过程,用于存储照片文件到数据库中Sub Save(Rec As ADODB.Recordset, ByVal FileName As String)Dim Length As Long, F As IntegerDim i As IntegerLength = FileLen(FileName)ReDim a1(Length + 12) As Byte, a2(Length) As Bytea1(0) = &H6C: a1(1) = &H74CopyMemory a1(4), Length, 4F = FreeFileOpen FileName For Binary As #FGet #F, , a2Close #FCopyMemory a1(8), a2(0), LengthRec(sphoto).AppendChunk a1End Sub随着SQL Serve 数据库管理系统功能的不断增强、性能的不断完善,将各类数据完全交由数据库管理系统统一存储和管理,已成为技术发的趋势。只有这样,SQL Serve 数据库管理系统的强大功能才能得到充分发挥,数据的安全性才能得到充分的保障,使得诸如数据库复制、数据的转移等许多工作,变得非常简单容易。参考文献:1张兴亮

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论