我有一个Windows应用程序,可以在Windows XP及更高版本(即Vista/7)中运行。根据Vista UI Guidelines,标准尺寸为16x16、32x32、48x48、256x256(XP标准尺寸不包括256x256图标)。除了这些尺寸,我还有96x96和128x128(也可以创建更多)。
我应该包括哪些图标尺寸?操作系统是否会实际使用“非标准”尺寸,还是只会使我的应用程序变得臃肿?
我有一个Windows应用程序,可以在Windows XP及更高版本(即Vista/7)中运行。根据Vista UI Guidelines,标准尺寸为16x16、32x32、48x48、256x256(XP标准尺寸不包括256x256图标)。除了这些尺寸,我还有96x96和128x128(也可以创建更多)。
我应该包括哪些图标尺寸?操作系统是否会实际使用“非标准”尺寸,还是只会使我的应用程序变得臃肿?
我花了一些时间详细检查了它。我创建了一个图标,其中的图像大小为16、24、32、40、48、64、96、128和256。然后我检查了显示哪个图像。所有这些都是在正常的96dpi下完成的。如果使用更大的DPI,则可能会使用更大的尺寸(只在Windows 7中进行了少量检查)。结果如下:
Windows XP:
Windows 7:
Windows Runtime: (来自此处)
因此,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)的图标进行了一些测试:
因此,从Windows 7开始,你的图标应至少提供16、48和256像素。为了支持更高分辨率的新屏幕,你应该提供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 10,实际上这并不完全准确,事实上 stackoverflow 上的任何答案都不是,我在尝试将像素艺术作为图标使用时发现了这一点,它在不应该被缩放的情况下被重新调整了大小(由于 Windows 的插值和平滑处理,这很容易看出来),即使我使用了这篇帖子中的大小。
因此,我制作了一个应用程序,并在所有 DPI 设置上完成了所有工作,您可以在这里查看:
Windows 10 所有 DPI 设置下的所有图标分辨率
您还可以使用我的应用程序创建图标,同时关闭最近邻插值和平滑处理,这是任何我见过的糟糕编辑器都没有做到的。
如果您只想要这些分辨率:
16、20、24、28、30、31、32、40、42、47、48、56、60、63、84、256
您应该使用所有 PNG 图标,并且除此之外放置的任何内容都不会显示。请参见我的 帖子。
(适用于Windows 8/10的更新答案)
在新的Windows设计指南中,可以在此处查看完整的指南和大小列表:https://msdn.microsoft.com/zh-cn/windows/uwp/controls-and-patterns/tiles-and-notifications-app-assets#asset-types
仍需包括以下尺寸的.ico文件以支持传统的体验:
不要使用96x96,改用64x64。我通常使用以下尺寸:
在XP上256也可以使用,但是旧的资源编译器有时会出现“内存不足”错误。
这份微软官方指南 表示:
应用程序至少应该有以下尺寸:16x16、24x24、32x32、48x48 和 256x256。
以下是一些程序及其ICO文件中包含的尺寸列表:
应用程序 | 图标 | 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文件,方法如下:
注释
|
简而言之,在 Visual Studio 2019
中,当您将 Icon
资源添加到 Win32
(桌面)应用程序时,您将获得一个自动生成的图标文件,其格式如下。我认为作为 Windows 的 #1 开发工具,它应该做得正确。因此,一个兼容 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 |