我有一个Windows应用程序,将运行在Windows XP和更新(即Vista/7)。根据Vista UI指南,标准尺寸是16x16、32x32、48x48、256x256 (XP标准尺寸不包括256x256图标)。除了这些尺寸,我还有96x96和128x128(还可以创建更多)。
我应该包括哪些图标大小?shell将实际使用“非标准”大小,还是我将简单地膨胀我的应用程序?
我有一个Windows应用程序,将运行在Windows XP和更新(即Vista/7)。根据Vista UI指南,标准尺寸是16x16、32x32、48x48、256x256 (XP标准尺寸不包括256x256图标)。除了这些尺寸,我还有96x96和128x128(还可以创建更多)。
我应该包括哪些图标大小?shell将实际使用“非标准”大小,还是我将简单地膨胀我的应用程序?
当前回答
不是96x96,而是64x64。我通常使用:
16 -状态/标题栏按钮 32 -桌面图标 48 -文件夹视图 64/128 -附加尺寸
256在XP上也能很好地工作,然而,旧的资源编译器有时会抱怨“内存不足”错误。
其他回答
在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,以保持文件大小较小。”
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 |
我花了些时间详细检查了一下。我创建了一个图标,其图像大小为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图标的版本。更多信息请看这里。
不是96x96,而是64x64。我通常使用:
16 -状态/标题栏按钮 32 -桌面图标 48 -文件夹视图 64/128 -附加尺寸
256在XP上也能很好地工作,然而,旧的资源编译器有时会抱怨“内存不足”错误。