【问题标题】:Why size of .mdb growing three times with small image?为什么.mdb 的大小随着小图像增长三倍?
【发布时间】:2012-06-14 12:15:17
【问题描述】:

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

【问题讨论】:

  • 特别了解 Access 2010 的人应该回答这个问题,但在旧版本的 Access 中,图像不是以压缩格式存储的,因此添加一个小的 JPG 可能会大大增加数据库大小。您是否尝试过压缩数据库以查看是否有所作为?
  • 压缩变化不大。在我的例子中,有 12.4 MB,现在是 11.9 MB。
  • @pstrjds 我不确定它是如何工作的,但 mdb 是较旧的格式,我怀疑它会受到旧版本的膨胀问题的影响。我想知道是否值得尝试 accdb 格式?
  • @Remou 这听起来很合理。我想这取决于它是否需要是 mdb 文件,或者是否可以接受更新的格式。我通常不再使用 Access,我不知道 MDB 和 ACCDB 之间的权衡是什么,但确实(从快速搜索和扫描返回的文档中)你应该获得更好的二进制数据存储,所以我怀疑它将原生处理 jpg 而不是将其存储为 bmp。
  • 确实如此。它节省了 2MB。所以我有10MB。我正在为我的应用程序考虑 2-3 MB。奇怪的是,Access 怎么能以重复的大小存储 70KB 的图像?

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


【解决方案1】:

取自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 中的表单上时,未压缩的图像数据将保存到系统表中。这是实际未压缩的表数据,因此压缩和修复可能没什么帮助。

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

【讨论】:

  • 感谢@EBarr 的格式编辑!现在看起来好多了!
  • 很高兴为您服务...只是在空闲时间浏览。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2015-06-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多