我有一个Windows应用程序,将运行在Windows XP和更新(即Vista/7)。根据Vista UI指南,标准尺寸是16x16、32x32、48x48、256x256 (XP标准尺寸不包括256x256图标)。除了这些尺寸,我还有96x96和128x128(还可以创建更多)。

我应该包括哪些图标大小?shell将实际使用“非标准”大小,还是我将简单地膨胀我的应用程序?


当前回答

我花了些时间详细检查了一下。我创建了一个图标,其图像大小为16、24、32、40、48、64、96、128和256。然后我检查了显示的图像。这些都是在正常的96dpi下完成的。如果使用更大的DPI,可能会使用更大的大小(在Windows 7中只检查了一点)。

Windows XP:

Explorer视图: 详细信息/列表 图标:32 Tiles / Thumbnails: 48 右键单击->属性/选择一个新图标:32 快速入门区:16 桌面:32

Windows 7:

Explorer视图: 详细信息/列表/小符号:16 所有其他选项:256(如果需要,可以调整大小) 右键单击->属性/选择一个新图标:32 固定到任务栏:32 Right-click-menu: 16 桌面: 小符号:32 介质符号:48 大符号:256(如果需要,可以调整大小) 使用Ctrl+鼠标滚轮缩放:16,32,48,256

Windows运行时:(从这里)

主平铺:150x150, 310x150(宽版) 小标志:30x30 徽章(锁屏):24x24,单色 Splashscreen: 620 x300 存储:50×50

因此,结果是:Windows XP使用了16、32和48个大小的图标,而Windows 7(可能还有Vista)也使用了256个大小的图标。所有其他中间图标大小被忽略(它们可能在我没有检查的某些区域使用)。


我还检查了Windows 7中图标大小缺失的情况:

缺失的大小被生成(显然)。对于大小为16、32和48的情况,如果缺少一个,则首选降级。因此,如果我们有大小为16和48的图标,32图标是由48图标创建的。如果没有其他可用的大小,256图标只用于这些!因此,如果图标的大小为16和256,其他大小将从16图标放大!

此外,如果256图标不存在,则使用(可能生成的)48图标,但不再调整大小。所以我们有一个(可能很大的)空白区域,中间有48图标。

注意,XP系统默认的桌面图标大小是32x32,而Windows 7是48x48。 因此,对于Windows 7来说,48图标是相对重要的。否则,它将从一个较小的图标放大,这可能看起来相当难看。


只是关于Windows XP兼容性的一个注意事项:如果您重用图标作为窗口图标,那么请注意,如果您使用压缩的256个图标,则可能导致应用程序崩溃。解决方案是要么不压缩图标,要么创建第二个没有(压缩的)256图标的版本。更多信息请看这里。

其他回答

在Windows 7中使用8、16、20、24、32、40、48、64、96、128和256像素(PNG格式为256)的图标进行测试后:

100%分辨率:资源管理器使用16、40、48和256。Windows照片查看器使用96。Paint使用256。 在125%分辨率时:资源管理器使用20,40和256。Windows照片查看器使用96。Paint使用256。 在150%分辨率时:资源管理器使用24、48和256。Windows照片查看器使用96。Paint使用256。 在200%分辨率时:Explorer使用40,64,96和256。Windows照片查看器使用128。Paint使用256。

所以8,32从未被使用过(32对我来说很奇怪),128只有在dpi非常高的屏幕上才被Windows照片查看器使用,也就是说几乎从未被使用过。

这意味着你的图标至少应该提供16,48和256的Windows 7。为了支持高分辨率的新屏幕,您应该提供16、20、24、40、48、64、96和256。对于Windows 7,所有图片都可以使用PNG压缩,但为了向后兼容Windows XP, 16到48不应该压缩。

不是96x96,而是64x64。我通常使用:

16 -状态/标题栏按钮 32 -桌面图标 48 -文件夹视图 64/128 -附加尺寸

256在XP上也能很好地工作,然而,旧的资源编译器有时会抱怨“内存不足”错误。

我花了些时间详细检查了一下。我创建了一个图标,其图像大小为16、24、32、40、48、64、96、128和256。然后我检查了显示的图像。这些都是在正常的96dpi下完成的。如果使用更大的DPI,可能会使用更大的大小(在Windows 7中只检查了一点)。

Windows XP:

Explorer视图: 详细信息/列表 图标:32 Tiles / Thumbnails: 48 右键单击->属性/选择一个新图标:32 快速入门区:16 桌面:32

Windows 7:

Explorer视图: 详细信息/列表/小符号:16 所有其他选项:256(如果需要,可以调整大小) 右键单击->属性/选择一个新图标:32 固定到任务栏:32 Right-click-menu: 16 桌面: 小符号:32 介质符号:48 大符号:256(如果需要,可以调整大小) 使用Ctrl+鼠标滚轮缩放:16,32,48,256

Windows运行时:(从这里)

主平铺:150x150, 310x150(宽版) 小标志:30x30 徽章(锁屏):24x24,单色 Splashscreen: 620 x300 存储:50×50

因此,结果是:Windows XP使用了16、32和48个大小的图标,而Windows 7(可能还有Vista)也使用了256个大小的图标。所有其他中间图标大小被忽略(它们可能在我没有检查的某些区域使用)。


我还检查了Windows 7中图标大小缺失的情况:

缺失的大小被生成(显然)。对于大小为16、32和48的情况,如果缺少一个,则首选降级。因此,如果我们有大小为16和48的图标,32图标是由48图标创建的。如果没有其他可用的大小,256图标只用于这些!因此,如果图标的大小为16和256,其他大小将从16图标放大!

此外,如果256图标不存在,则使用(可能生成的)48图标,但不再调整大小。所以我们有一个(可能很大的)空白区域,中间有48图标。

注意,XP系统默认的桌面图标大小是32x32,而Windows 7是48x48。 因此,对于Windows 7来说,48图标是相对重要的。否则,它将从一个较小的图标放大,这可能看起来相当难看。


只是关于Windows XP兼容性的一个注意事项:如果您重用图标作为窗口图标,那么请注意,如果您使用压缩的256个图标,则可能导致应用程序崩溃。解决方案是要么不压缩图标,要么创建第二个没有(压缩的)256图标的版本。更多信息请看这里。

微软用户体验图标指南说:

应用程序图标和控制面板项:全套包括16x16、32x32、48x48和256x256(代码比例在32到256之间)。

对我来说,这意味着(但没有明确表示,不幸的是)你应该提供这4个尺寸。

关于颜色格式的其他详细信息,您可能也会发现有用:

“图标文件也需要8位和4位调色板版本,以支持远程桌面的默认设置。” “应该只包含256x256像素图像的32位副本,并且只有256x256像素图像应该压缩为PNG,以保持文件大小较小。”

这份官方的微软Windows应用程序开发指南说:

应用程序至少应该有:16x16、24x24、32x32、48x48和256x256。

以下是ICO文件中包含的一些程序及其大小:

Application Icon 16 20 24 32 40 48 60 64 72 80 96 256
Google Chrome 106
IntelliJ IDEA 2022.2.3
MS PowerToys 0.63.0
MS Paint 11.2208.6.0
MS Task Manager 10.0
MS Word 2021
MS Visual Studio 2022

我们可以用ImageMagick从PNG等文件创建一个不同大小的ICO文件,如下所示:

./magick my-source-image.png -background transparent -define icon:auto-resize="16,24,32,48,64,256" C:/Users/Hello/Desktop/result.ico

笔记

没有应用程序包含128的大小 256大小为PNG格式;其他的是ICO MS是微软的缩写 图标是用这个工具从程序.exe文件中提取的 你可以保存上面的图标,并自己用ImageMagick检查它们,就像这样: ./magick识别“C:/Users/Hello/Desktop/result.ico”