【发布时间】:2014-07-07 09:54:03
【问题描述】:
我想用 Delphi 制作一个应用程序。问题是我将在其中包含很多TImage 组件 - 这将使 exe 大小非常大。到目前为止,我的 exe 有 20MB 大,而我只完成了主页,根据我的计算,仅 exe 的大小就会超过 10GB - 这太多了。
如何制作一个包含成百上千张图片的应用程序,同时让 exe 体积小?
【问题讨论】:
我想用 Delphi 制作一个应用程序。问题是我将在其中包含很多TImage 组件 - 这将使 exe 大小非常大。到目前为止,我的 exe 有 20MB 大,而我只完成了主页,根据我的计算,仅 exe 的大小就会超过 10GB - 这太多了。
如何制作一个包含成百上千张图片的应用程序,同时让 exe 体积小?
【问题讨论】:
不要将图像放在可执行文件中。将它们保存在外部文件中并在运行时加载它们。
这将要求您在设计时停止将图像加载到TImage 控件中,而是使用动态代码来加载图像,然后转移到TImage 控件中。这样做有很多好处:
TImage 将以非常低效的方式保存到 .dfm 文件中。您可以选择使用 PNG 或 JPEG 压缩。【讨论】:
如果您不需要将图像保持为原始大小,您可以在程序启动时读取它们并将它们缩放到它们的“工作”大小。这将极大地减少您的内存需求 - 例如,将图像减少到其原始宽度和高度的一半,将内存需求减少到原始图像的四分之一。
如果图像没有更改,您可以在单独的构建过程中离线执行此操作,也可以大大减少加载时间。否则,您可以在加载过程中缓存缩小的图像,以便下次启动程序时加快速度。
【讨论】:
您可能会发现二进制代码包含所有 PNG 文件格式的图像,因此它将为您编译非常大的应用程序大小。
我在运行时使用 JPG 格式的图像,因此您可以在表单的 OnCreate 事件中从包中加载。
使用“项目”菜单“部署”将您的 JPG 文件包含到 APK。
您可以在此处阅读更多内容: http://blogs.embarcadero.com/davidi/2013/11/23/43005/
【讨论】: