我正在构建桌面应用程序,偶尔会将图像添加到解决方案资源管理器中。当我“构建”应用程序时,我注意到.exe文件的大小增加。如果我添加40kb的图像,则.exe增加40kb。
总而言之,我的申请目前是12mb,我觉得人们下载的时间太多了。
有没有办法让我最小化.exe大小,换句话说,将图像添加到我的应用程序中,对影响最小?
答案 0 :(得分:4)
您可以将图像外部化,将它们作为单独的文件发送,或让您的应用程序从Web服务器下载它们。 WPF很高兴使用HTTP或文件系统URL作为Image元素的Source。
但这只会改变问题:您的初始EXE较小,但现在还有许多其他文件要下载。它归结为:如果你有12 MB的图像,你有12 MB的图像,那12 MB必须到达用户的机器以某种方式!
如果你担心12 MB的应用程序大小,你可以尝试使文件更小 - 更低的分辨率,不同的文件格式(例如JPG而不是BMP)等。或者,如果用户不去需要所有文件,您可以让应用程序按需下载它们(但请注意,如果用户离线,这可能会造成延迟或错误。)
另一方面,按照现代标准,12 MB对于游戏类应用程序来说真的不是那么大(这是我理解的)。因此,除非您的目标市场是许多用户仍处于拨号状态或其他缓慢或不良连接状态,否则可能不会那么大。
答案 1 :(得分:0)
这实际上取决于你的图像,但是......如果它们彼此有些相似,你可以将它们压缩,然后在安装时或第一次运行应用程序时展开。你可以尝试拉链,只是为了看看会发生什么。如果你可以减少20%或更多的图像压缩可能是值得的。 (或者你可以选择目的相似的图像来帮助压缩。)
此外,如果您的图片很简单,您可以尝试使用GIF格式。它非常适合用线条和更简单的色域压缩图像(例如非摄影图像......更像动漫)
我也喜欢itowlson的回答顺便说一句。 1
答案 2 :(得分:0)
我刚刚对编译exe文件大小进行了快速测试。如果将文件作为资源添加到解决方案资源管理器,则这些图像将直接编译到exe中。但是,如果您只是将文件添加到解决方案资源管理器并为文件提供“构建操作”的“Conten”和“复制到输出目录”的“复制如果更新”,那么该文件不是exe的一部分,但是辅助文件和exe。
这意味着图像可以用于你的exe,但不是它的一部分。
这可能就是您所看到的,因为它允许您轻松地更改应用程序中使用的图像[只需在解决方案文件夹中更改它们]