如果Delphi应用程序有许多TImage组件,我怎么能保持它的大小?

时间:2014-07-07 09:54:03

标签: delphi timage

我想使用Delphi制作应用程序。问题是我将有很多TImage组件 - 这将使exe大小非常大。到目前为止我的exe是20MB大,我只完成了主页,根据我的计算,单独的exe大小将超过10GB - 这太多了。

如何制作包含数百/数千张图片的应用程序,然后让exe文件变小?

3 个答案:

答案 0 :(得分:12)

不要将图像放在可执行文件中。将它们保存在外部文件中并在运行时加载它们。

这将要求您在设计时停止将图像加载到TImage控件中,而是使用动态代码加载图像,然后转移到TImage控件。这样做有很多好处:

  1. 将可执行文件保持在合理的大小,可以放入虚拟地址空间。
  2. 您可以为图像使用最合适的压缩格式。如果我没记错的话,Delphi TImage将以非常低效的方式持久存在.dfm文件中。您可以选择使用PNG或JPEG压缩。
  3. 保持外部文件可以让您在开发时更好地管理它们。您可以将它们作为单独的文件保存在修订控制系统中。将图像存储在.dfm文件中可以在需要更改图像时进行艰苦的更新。您必须与IDE进行大量交互。存储为文件允许您覆盖文件,并提交到存储库。

答案 1 :(得分:2)

如果您不需要将图像保持原始尺寸,可以在程序启动时阅读它们并将它们缩放到“工作”状态。尺寸。这将极大地降低您的内存需求 - 例如,将图像缩小到原始宽度和高度的一半会将内存需求降低到原始图像的四分之一。

如果图像没有变化,您可以在单独的构建过程中离线执行此操作,并减少加载时间。否则,您可以在加载过程中缓存缩小的图像,以便在下次启动程序时加快速度。

答案 2 :(得分:1)

您可能会发现二进制代码将所有图像都包含为PNG文件格式,因此它将为您编译极大的应用程序大小。

我在运行时使用图像作为JPG,因此在表单的OnCreate事件中,您可以从包中加载。

使用“项目”菜单“部署”将您的JPG文件包含在APK中。

您可以在这里阅读更多内容: http://blogs.embarcadero.com/davidi/2013/11/23/43005/