图像数据存储技术.doc

上传人:hw****26 文档编号:3092245 上传时间:2019-05-20 格式:DOC 页数:6 大小:119.50KB
下载 相关 举报
图像数据存储技术.doc_第1页
第1页 / 共6页
图像数据存储技术.doc_第2页
第2页 / 共6页
图像数据存储技术.doc_第3页
第3页 / 共6页
图像数据存储技术.doc_第4页
第4页 / 共6页
图像数据存储技术.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、图像数据存储技术 摘要:,将多媒体信息引入到系统当中,随着数据库应用技术的发展,已经 成为人们对现代数据库应用系统的要求之一。本文通过对图像数据的不同存储 方式的分析,提出在学生信息系统中以数据库方式存储学生照片的方法,并且 使用VB 6.0 中的ADO 数据控件实现了图像数据入库操作及照片的浏览。 关键词:信息系统;图像; 概述:随着数据库应用技术的发展, 将多媒体信息引入到系统当中,使管 理系统功能更强大,界面更美观,信息更丰富,已经成为人们对现代数据库应 用系统的要求之一。在学生信息系统中,除了需要将每一名学生的基本数据信 息存入系统,还需要将该学生的照片以图像信息的形式存入系统。这样可

2、以随 时查看学生的照片,或用来制作学生证等证件,以提高证件的可信度并减少证 件照片处理的工作量。 图像的数据量要远远大于数据库中存储的普通数据的数据量。因此,组织 与管理好图像数据与数据库应用系统的结构、效率、安全性、完整性息息相关。 本文给出了一种在学生信息系统中组织与管理图像信息的方法, 并利用ADO 技术设计实现了图像信息的入库及浏览等操作。 1.存储图像数据的策略 1.1 以文件方式存储图像数据 图像信息通常是通过扫描或摄像的方法进入系统的,并且一般的多媒体系 统中都采用文件形式存放数据。所以在数据库应用系统中,可以采用文件形式 存放图像数据。首先,将每一幅图像组织成一个文件,众多的图

3、像文件形成图 像文件集。在学生基础信息表中设置一个存放照片图像文件物理文件名的字段 (pFileName) , 在该字段中存放每一名学生照片文件的存储路径及文件名。这 样就建立起了学生基础信息表与照片文件集之间的关联(如图1 所示) 。图1 学生基本信息表与照片文件集之间的关联 用该方法存储图像文件的优点是容易实现,编程过程中无须复杂编码,图 像信息的引入也不会影响原主数据表(学生基本信息表)的访问效率。但这种 图像存储方式的缺点也非常明显。按此方法构造的系统实质上是由数据库系统 加上文件系统构成的综合应用系统,其性能从整体上讲已退化为文件系统,因 此文件系统的所有缺陷都会在此系统中存在。文件

4、系统的一个主要问题是安全 没有保证,任何一个进入计算机系统的人都可以对文件进行各种处理,包括移 动、修改甚至删除,而系统无法给予任何保护,系统的数据完整性也就无法得 到保证。 1.2 以数据库方式组织图像数据 SQL Server 2000 是功能强大的关系数据库管理系统。它支持的数据类型 多达27 种, 其中ntext、text 和image 类型用于存储BLOB(Binary Large Object 二进制大对象)数据,在单个值中可以存储最大为2GB 的数据量。这一 容量完全可以用于存放一张普通的照片。其中的image 类型是用于存储图像数 据的理想类型。 然而由于图像数据的数据量很大,

5、直接将图像数据引入到主数据表中,将 会造成数据库中的主数据表尺寸过大,使系统对主数据表的访问效率降低,响 应时间增长。因此,在系统设计中,将学生基本信息与其照片图像信息分别存 放在两个表中,并在两个表之间建立相应的关联,实现主数据与图像数据物理 上的分离和逻辑上的统一。这样一来,即可以实现以数据库形式管理图像数据, 使图像数据享受到数据库管理系统提供的安全性、数据完整性等保护,同时也 能够避免图像数据对主数据表的负面影响。图2 数据表的设计 以下是在SQL Server 2000 中创建主数据表(SBase)和图像数据表 (SPic)的方法。两表之间以学号(sNo)为公共字段,建立一对一联系。

6、 CREATE TABLE SBase /* 创建学生基本信息表*/ (sNo char(4) NOT NULL, /* 学号字段非空*/ sName char(10) NULL, /* 学生姓名字段*/ sGender char(1) NULL, /* 学生性别字段*/ CONSTRAINT prim_sno1 PRIMARY KEY (sNo) /* 定义sNo 主键约束以及以 sNo 为关键字的聚簇索引*/ ) GO CREATE TABLE SPic /* 创建图像信息表*/ (sNo char(4) NOT NULL, /* 学号字段非空*/ sPhoto image NULL, /

7、* 照片字段类型为image*/ CONSTRAINT prim_sno2 PRIMARY KEY(sNo), /* 定sSNo 主键约束以及以 sNo 为关键字的聚簇索引*/ CONSTRAINT foreign_sno FOREIGN KEY(sNo) REFERENCES SBase(sNo) /* 定义外键约束,实现参照完整性控制*/ ) GO 2.存取图像信息的方法 VB 6.0 是目前比较流行的应用系统开发工具之一。Microsoft在其VB 中加 入了创建“健壮”的ActiveX 组件的能力。ActiveX 数据对象ADO 可以方便地 实现对SQL Server 2000 数据库

8、的存取等操作。2.1 配置ODBC数据源 ODBC(Open Database Connectivity 开放式数据库连接)为使用不同的关 系数据库提供了一个统一的程序设计接口。要使用ODBC,首先要配置一个数据 源。数据源用来说明到哪儿可以找到应用程序所需要的数据库物理文件,以及 使用哪一个ODBC 驱动程序来翻译API 调用。可以通过Windows “控制面板” 中“管理工具” 下的“数据源(ODBC) ” 来启动“ODBC 数据源管理器” ,添加 新数据源,并与SQLServer服务器中相应的数据库进行连接。 2.2 照片浏览的实现 在VB 中新建工程,并在窗体中添加一个ADO 控件,其

9、名称为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类型来存放图像数据,但

10、没有提供将图 像数据写入相应字段中的方法。以下的程序设计可以将图像数据写入相应的字 段。首先在窗体中放置一个CommonDialog 控件。为Image 控件的Click 事件添 加代码,单击Image 控件时,通过CommonDialog 控件打开通用对话框,在该对 话框中选中要添加到表中的照片图像,并将该图像的数据写入数据库。 Option Explicit API 声明部分,该函数的作用是将源内存块复制到指定的内存空间 Private Declare Sub CopyMemory Lib “kernel32“ Alias “ RtlMoveMemory“ (Destination As

11、Any, Source As Any, ByVal Length As Long)Image1 控件的单击事件,通用对话框选定照片文件 Private Sub Image1_Click() With CommonDialog1 .DialogTitle = “文件选择“ .Filter = “点阵图(.bmp)|*.bmp|JPEG 图(.jpg)|*.jpg|全部文件(*.*)|*. *“ .CancelError = True .ShowOpen 调用用户自定义过程将照片文件存储到数据库中 Set Image1.Picture = LoadPicture(.FileName) Save A

12、dodc1.Recordset, .FileName End With End Sub 自定义过程,用于存储照片文件到数据库中 Sub Save(Rec As ADODB.Recordset, ByVal FileName As String) Dim Length As Long, F As Integer Dim i As Integer Length = FileLen(FileName) ReDim a1(Length + 12) As Byte, a2(Length) As Byte a1(0) = &H6C: a1(1) = &H74 CopyMemory a1(4), Lengt

13、h, 4 F = FreeFile Open FileName For Binary As #F Get #F, , a2 Close #F CopyMemory a1(8), a2(0), Length Rec(“sphoto“).AppendChunk a1 End Sub 随着SQL Serve 数据库管理系统功能的不断增强、性能的不断完善,将各类数据完全交由数据库管理系统统一存储和管理,已成为技术发的趋势。只有 这样,SQL Serve 数据库管理系统的强大功能才能得到充分发挥,数据的安全 性才能得到充分的保障,使得诸如数据库复制、数据的转移等许多工作,变得 非常简单容易。 参考文献: 1张兴亮,董军辉,MS SQL Server 的编程实践与应用J,成都电子机械高等专科学校学报2004 年 第1 期。 2兰丽辉,使用ODBC API 访问SQL Server 数据库J,长春大学学报,2004 年4月。 3于鹏等,Visual BASIC 6.0 程序设计教程M,北京:电子工业出版社,2003.8。 4范立南等,SQL Server 2000 实用教程M,北京:清华大学出版社,2004.2。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。