我想用 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/