为什么.mdb的大小会随着小图像增长三倍?

时间:2012-06-11 15:01:49

标签: image ms-access ms-access-2010

我在Access 2010中创建了几个表单,并在标题表单中添加了公司徽标。这张照片是.jpg,大小是70KB。我不知道为什么.mdb的大小会立即从4MB增加到12MB? (几种形式和相同的标识)也许有一些图像压缩选项?

2 个答案:

答案 0 :(得分:4)

取自http://office.microsoft.com/en-us/access-help/store-images-in-a-database-HP005280225.aspx

  

...“但是,嵌入图片会迅速膨胀你的大小   数据库并使其运行缓慢。如果你这一点尤其如此   存储GIF和JPEG文件,因为OLE会创建其他位图文件   包含每个图像文件的显示信息,以及   这些附加文件可能比原始图像大。在   此外,此方法仅支持Windows位图(.bmp)和   设备无关位图(.dib)图形文件格式。如果你想   显示其他常见类型的图像文件,例如GIF和JPEG   图像,您必须安装其他软件。“...

为了解释这些位图文件的存储方式,下面的链接提供了比微软网站更多的解释:

取自http://www.ammara.com/support/kb/showkbe5cc.html

  

...“OLE链接和嵌入是Microsoft Access使用的一种技术   在数据库表中存储'对象'。该技术依赖于   关联的外部应用程序来存储,显示和编辑数据。   在某些情况下,还会保存其他未压缩的“预览”图像   在表中(即使链接)。此预览图像用于   更快地显示数据,或者当服务器应用程序不显示时   可用。这可能会导致巨大的开销。如果你正在存储jpeg   图像未压缩的预览可以是实际的十倍或二十倍   图像大小,导致数据库的大小火箭。“......

因此,当您将图像拖放到MS Access中的表单上时,未压缩的图像数据将保存到系统表中。这是实际未压缩的表数据,因此紧凑和修复可能提供的帮助很少。

常见的解决方法似乎是在数据库表中存储图像的路径,并使用该路径调用表单上的图像。

答案 1 :(得分:1)

我不知道为什么(我也不在乎)但我已经注意到了这种行为。我对公司徽标或等效的解决方法是将其插入一个表单,然后我将其作为子表单插入到我需要的任何位置。它的另一个好处是,如果徽标更改一天,则只有一个地方需要更新。