昨天晚上,我花了很长的时间用PS做一个128X128的图标,结果替换了res文件夹下的图标重新编译之后,程序图标居然模糊不清。后来我用ResHacker提取了QQ的图标之后才慢慢知道它包含了很多个不同大小的图标,也就是说一个*.ico文件可以包含多个不同大小的图标。为什么会这样呢?因为windows对图标大小的需求不是连续的,而且图标大小本来就很小,windows缩放扩大之后效果本来就不好,所以需要手工添加不同大小的图标。

下面是windows系统对程序图标的需求:

windows_icon

小图标,也就是默认的16×16的,将会用于绘制标题栏图标、任务栏图标和任务管理器图标。24×24是用在开始菜单里面,32×32及以上是用在资源管理器里面,其它大图标就是只有vista以上的系统才能适用了。

建议ico文件里面添加256×256, 48×48, 32×32, 16×16这几种尺寸, 这样就完全可以做到和QQ图标一样的效果了!当然加了256×256的之后程序会大不小,但是想在XP里面混,把48×48、32×32、16×16加上才不会出现图标模糊的现象。

不论是在VC6还是VS系列里面,都只能对256的图标进行编辑,如果你对颜色质量要求不高,按照下图所示的方法就足够了:

vc6_icon vc6_icon2

普通的软件很难实现向同一个ico文件里面添加几个不同尺寸的图标,而且上面也说了VC只支持对256色的进行编辑,所以编辑图标还必须用到一些专业的软件。我推荐用Axialis IconWorkshop(中文名叫图标工厂), 你只需要提供一个或几个高清的图像(推荐用PNG格式的),就可以自动生成一系列的图标了,当然它还有很多高级的图标编辑功能,而且还提供了VS的插件,那样就可以直接在VS里面编辑真彩色图标了。

Axialis_IconWorkshop

不过VC6确实够古老了,在VC6下只有采用用你做的图标替换默认图标文件,再Rebuild All的办法,才能用上真彩色图标,千万不要在VC6里面对图标进行编辑!