Image 为什么.mdb的大小在图像较小的情况下增长了三倍?

Image 为什么.mdb的大小在图像较小的情况下增长了三倍?,image,ms-access,ms-access-2010,Image,Ms Access,Ms Access 2010,我在Access 2010中制作了一些表格,并在标题表格中添加了公司徽标。这张图片是.jpg,大小是70KB。我不知道为什么.mdb的大小立即从4MB增加到12MB?(几张表格和相同的徽标)也许有一些图像压缩选项?摘自 “…”然而,嵌入图像可能会迅速扩大图像的大小 数据库并使其运行缓慢。如果 存储GIF和JPEG文件,因为OLE会创建其他位图文件 包含每个图像文件的显示信息,以及 这些附加文件可以比原始图像大。在 此外,此方法仅支持Windows位图(.bmp)和 与设备无关的位图(.dib)图

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

摘自

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

为了解释这些位图文件是如何存储的,下面的链接提供了比microsoft站点更多的解释:

取自

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

因此,在MS Access中将图像放到窗体上时,未压缩的图像数据将保存到系统表中。这是实际的未压缩表数据,因此压缩和修复可能没有什么帮助


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

我不知道为什么(我也不在乎),但我也注意到了这种行为。我对公司徽标或类似徽标的解决方法是将其插入一个表单中,然后在需要时将其作为子表单插入。它还有一个额外的好处,即如果徽标有一天发生更改,则只有一个地方可以更新。

了解Access 2010的人尤其应该回答这个问题,但在较旧版本的Access中,图像没有以压缩格式存储,因此添加一个小JPG可能会大幅增加数据库大小。您是否尝试过压缩数据库以查看这是否有影响?压缩不会有太大变化。在我的例子中,有12,4 MB,现在是11,9 MB。@pstrjds我不太清楚它是如何工作的,但mdb是较旧的格式,我怀疑,受膨胀的影响,这是较旧版本的一个问题。我想知道是否值得尝试accdb格式?@Remou听起来很合理。我想这取决于它是否需要是
mdb
文件,或者是否可以接受更新的格式。我通常不再使用Access,也不知道MDB和ACCDB之间的折衷是什么,但是(通过快速搜索和扫描返回的文档),您应该获得更好的二进制数据存储,因此我怀疑它将以本机方式处理jpg,而不是将其存储为bmp。它节省了2MB。所以我有10MB。我想我的应用程序大约有2-3MB。奇怪的是,Access竟然能以重复的大小存储70KB的图像?感谢您对格式的编辑,@EBarr!现在看起来好多了!很高兴为您服务…只是在空闲时间浏览一下。