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

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


当前回答

在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不应该压缩。

其他回答

TL,博士。在Visual Studio 2019中,当你向Win32(桌面)应用程序添加图标资源时,你会得到一个自动生成的图标文件,其格式如下。我认为Windows的头号开发工具在这方面做得不错。因此,Windows兼容文件应该具有以下格式:

| Resolution | Color depth | Format |
|:-----------|------------:|:------:|
| 256x256    |      32-bit |  PNG   |
| 64x64      |      32-bit |  BMP   |
| 48x48      |      32-bit |  BMP   |
| 32x32      |      32-bit |  BMP   |
| 16x16      |      32-bit |  BMP   |
| 48x48      |       8-bit |  BMP   |
| 32x32      |       8-bit |  BMP   |
| 16x16      |       8-bit |  BMP   |

在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不应该压缩。

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

应用程序图标和控制面板项:全套包括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”

在Windows 10的情况下,这是不完全准确的,事实上没有一个在stackoverflow上的答案是,我发现这一点,当我试图使用像素艺术作为图标时,它被重新缩放,当它不应该(在这种情况下很容易看到,因为插值和平滑窗口),甚至你我使用了这篇文章的大小。

所以我做了一个应用程序,并做了所有DPI设置的工作,看这里: Windows 10所有图标分辨率的所有DPI设置 你也可以用我的应用程序来创建图标,还可以用平滑的最近邻插值,这是我所见过的任何糟糕的编辑器都做不到的。

如果你只想要决心: 16、20、24、28、30、31、32、40、42、47、48、56、60、63、84、256 你应该使用所有的PNG图标,你放在这些图标旁边的任何东西都不会显示出来。请看我的帖子为什么。