我有一个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不应该压缩。

其他回答

(Windows 8/10的更新答案)

在新的Windows设计指南中查看完整的指南和尺寸列表:https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-app-assets#asset-types

仍然包含以下大小的.ICO文件,以支持遗留体验:

16 x16 24 x24 32 x32 48 x48 256 x256

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

这份官方的微软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”

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   |

来自微软MSDN的建议:

应用程序图标和控制面板项:全套包括16x16、32x32、48x48和256x256(代码规模在32到256之间)。要求文件格式为。ico。对于经典模式,全套是16x16, 24x24, 32x32, 48x48和64x64。

所以我们已经有了标准的推荐尺寸:

16 × 16, 24 x 24, 32 x 32, 48 x 48, 64 x 64, 256 * 256。

如果我们想支持高DPI设置,完整的列表将包括以下大小:

20 x 20, 30 x 30, 36 x 36, 40 x 40, 60 x 60, 72 x 72, 80 x 80, 96 x 96, 128 x 128, 320 x 320, 384 x 384, 512 x 512。