第三章 数据库中的图片
第一节 处理BLOBs,在Access中存储图片
现在开发数据库应用程序不仅仅只需要处理文本或数字数据。例如,如果你正开发基于Interner/Intranet或基于多媒体的应用程序,和数据库中的文本一样,数据库中的图片就必须频繁的显示。
在本教程的第三章,我们将了解怎样通过ADO取出并显示Access数据库中的图形数据(图像)。不要担心处理Access数据库中的图像所需要的数据库编程技巧会比本教程到现在为止所提供的更多。让我们假设比已得到的我们已知道得更多。
如果你从本教程的开始部分学起(尤其是第二章),你就会知道怎样连接数据库并在DBGrid中显示Applications表(来源于我们的aboutdelphi.mdb数据库)。记住,我们需要三个数据组件:DBGrid、ADOTable和DataSource来得到和显示Applications表的数据。
回到第一章我们创建数据库的时候,在Applications表的最后一个字段我们留为空(其他字段我们填上了哑元数据)。最后字段的字段名为Picture,类型为OLE对象类型。
如果你右滚到DBGrid的最后一列,你将看到如图的情况:
使用MS Access时,我们可以在OLE对象类型的字段中存储图像(和其他大数据对象,如声音或录像)。这种类型的数据被视为Binary Large Object Bitmap (BLOB)大二进制对象位图。
当然在处理图像时,几种类型的图片格式是可利用的。最常用的包括JPEG、GIF和BMP。其中JPEG已被网页设计者广泛接受,因为其所需的数据存储量很小(换句话说,JPEGs的数据量比BMPs要小)。
当然,Delphi有处理BMP、GIF和JPEG图形格式的方法。本章接下来的部分将处理JPEG文件格式。
在Access中存储图片(Storing pictures in Access)
在讨论在Delphi表单中显示数据库表中的图像以前,我们需要在数据库中增加一些图形数据。
运行Access,打开aboutdelphi.mdb库。打开Applications表(它应有一行数据)并选择Picture(图片)字段。
按下面的步骤增加图像:
1、选择Insert(插入) | Object(对象)...将显示一个Insert Object(插入对象)对话框。
2、点击Browse(浏览)按钮,将弹出Browse(浏览)打开对话框。注:在你的计算机上可能有一些.jpg文件,因此你可以使用这些文件,或如果你有Win98和更新的版本,MS Paint将以这种格式保存图片—其他许多工具也可完成同样的功能。找到存放图片的目录并选择一个图片。
注:Picture图片字段上的文本拥有一个可执行的、用于处理计算机上JPEG文件的名称。当然,在表格上你不会看见图片。为了真正看见图片可双击该字段,这将以JPG格式载出与应用程序相关联的图像。
现在,在数据库我们已经拥有了图片,让我们看看怎样在Delphi表单中显示它。从第二章起,我们已有了一个带有数据组件的Delphi表单。