繁体   English   中英

如何在不增加可执行文件大小的情况下将图像添加到桌面应用程序?

[英]How can I add images to my desktop application without increasing the executable file size too much?

我正在构建一个桌面应用程序,偶尔会将图像添加到解决方案资源管理器中。 当我“构建”应用程序时,我注意到.exe文件的大小增加。 如果我添加40kb的图像,.exe增加40kb。

总而言之,我的应用程序目前是12mb,我认为这对人们下载来说有点太多了。

有没有办法让我最小化.exe大小,换句话说,添加图像到我的应用程序,影响最小?

您可以将图像外部化,将它们作为单独的文件发送,或让您的应用程序从Web服务器下载它们。 WPF很乐意使用HTTP或文件系统URL作为Image元素的Source。

但这只是改变了问题:你的初始EXE较小,但现在还有一堆其他文件要下载。 它归结为:如果你有12 MB的图像,你有12 MB的图像,那12 MB必须以某种方式到达用户的机器!

如果您担心12 MB的应用程序大小,您可以尝试使文件更小 - 更低的分辨率,不同的文件格式(例如JPG而不是BMP)等。或者,如果用户不需要全部对于文件,您可以让应用程序按需下载它们(但请注意,如果用户处于脱机状态,可能会造成延迟或错误)。

另一方面,按照现代标准,对于游戏类型的应用程序来说,12 MB实际上并不是那么大(这是我理解的)。 因此,除非您的目标市场是许多用户仍然使用拨号或其他缓慢或差的连接,否则可能不是那么大的交易。

这实际上取决于你的图像,但是......如果它们彼此有点相似,你可以将它们压缩,然后在安装时或第一次运行应用程序时展开。 你可以尝试拉链,只是为了看看会发生什么。 如果你可以减少20%或更多的图像压缩可能是值得的。 (或者您可以选择有意图的图像以帮助压缩。)

此外,如果您的图像很简单,您可以尝试GIF格式。 它非常适合用线条和更简单的颜色区域压缩图像(例如非摄影图像...更像动漫)

我也喜欢itowlson的答案顺便说一句。 +1

我刚刚对编译exe文件大小进行了快速测试。 如果将文件作为资源添加到解决方案资源管理器,则这些图像将直接编译到exe中。 但是,如果您只是将文件添加到解决方案资源管理器并为文件提供“构建操作”的“Conten”和“复制到输出目录”的“复制如果更新”,那么该文件不是exe的一部分,但是辅助文件与exe一起。

这意味着图像可用于您的exe,但不是它的一部分。

这可能就是您所看到的,因为它允许您轻松地更改应用程序中使用的图像[只需在解决方案文件夹中更改它们]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM