精简ICO图标可减小EXE程序文件大小
2011-09-05 22:41
169 查看
精简ICO图标可减小EXE程序文件大小
使用VS2010编写的小程序,两百行不到的代码,生成的可执行程序却有3百多KB!心想不该如此之大才对。在下次编写小程序的时候,在刚建立解决方案的时候,生成的默认窗口的EXE程序才8KB!将之前程序的源代码复制进去,程序大小也才40多KB!和之前的3百多KB相差也太多了。于是进行了一番实验,结果如下:
默认解决方案 | 更换图标后 | ||
程序的左上角图标 | |||
EXE文件的图标 | |||
EXE文件大小 |
可见,设置了两处的图标后,文件的大小刚好是两个图标文件的大小。为此要想精简EXE文件的大小,就必须将图标精简到最小。
通过搜索相关资料,找到了Windows支持的标准图标大小。
意思说:只要一个图标文件中包含标准尺寸的图标即可。而通过软件Axialis ICOWorkshop 打开什么的图标,发现里面包含了从16X16 到128X128的各个尺寸,
于是只要删除非标准尺寸的图标,只保留16到64的尺寸,即精简了图标的大小。从原来的152KB,到现在的才32KB了!
通过查看VS2010的属性窗口中得知,窗体左上角图标只需要一个32X32尺寸的图标即可。
于是只保留了32X32尺寸的图标,最后得到的另一个文件大小就才4KB了!
最后,将软件的左上角图标,和EXE文件图标分别设置为4KB的图标文件,和32KB的图标文件,重新生成的文件大小为:
至此,得出IDE并没有帮我们精简图标的任务的结论。所以当想要精简程序文件大小的时候,不妨从精简相应图标的文件大小开始。
By:AsionTang
2011年7月10日 15:34:45
事后无意中研究了一番Windows自带的图标都包含了多少种大小格式,才发现在Win7下的系统图标中,仅仅包含16(8x2),32(8x4),48(8x6),256(8x32)四种尺寸!当然,官方的还包括了三种色彩规格,256色,16色,32位色彩的,总共1个图标包含10套不同色彩的不同尺寸图标。看来24和64的尺寸仅做支持,不做官方使用嘛,呵呵。于是精简的图标可以只剩下三种尺寸格式,体积就又减少了很多!
本来程序左上角图标应该只需要16x16尺寸的即可,但是后来发现在系统任务栏,和Alt + Tab切换的时候程序的图标是32x32的。所以,左上角图标可以有两个方案:
1、只放32尺寸的图标;
2、同时放16和32尺寸的!
这里一直都未讨论图标色彩模式,都选择了最高的32位色彩,因为当今的电脑系统已经很少会用到16位色彩,或者更低的256色彩模式了吧,因此,既然不是官方的图标,那么就可以只需制作32位色彩(RGB)的恰当尺寸的图标即可!
当然,本文一切仅作个人参考。
添加:AsionTang
2011年7月30日 01:39:53
相关文章推荐
- 减小Delphi的Exe文件大小
- 减小Delphi xe系列生成的exe文件大小
- 如何减小在VS2013下生的exe文件的大小.
- 减小VS2012生成的exe的文件大小的一种方法
- C/C++程序减小可执行文件的大小
- [原]减小VC6编译生成的exe文件的大小
- 减小Delphi的Exe文件大小(11种方法)
- 减小VC6编译生成的exe文件的大小的方法
- java 程序做成 exe文件
- 【打包成exe安装包文件发布你的程序】使用QT联系人管理系统的例子
- 减小Exe, DLL 的大小问题 - VC
- 一个从EXE、DLL文件中提取、存取图标完整程序
- 事实又一次证明,编译EXE程序时生成MAP文件是很有必要的
- VS调试C++程序,提示无法启动程序,“...exe”。系统找不到指定文件
- IIS安装错误提示:安装程序无法复制文件 zClientm.exe 解决方案
- Qt程序打包成exe可执行文件图文教程
- Qt程序打包成exe可执行文件图文教程
- VC6中减小生成EXE文件的大小
- 安装IIS时出现"安装程序无法复制文件zClientm.exe"解决办法
- 实验 4.2.4 实现文件复制 1. 用文件流的 I/O 函数实现一个文件拷贝程序,将一个文件拷贝到另一个文件。 2. 分别用字节读,行读,任意大小读的方式。