我的Windows应用程序的图标应该包括哪些图标大小?

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

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

326490 次浏览

不是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
  • 右键单击->Properties /选择一个新图标:32
  • 快速入门区:16
  • 桌面:32

Windows 7:

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

Windows Runtime: (from here)

  • 主平铺: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图标创建的。因此,如果图标的大小为16和256,其他大小将从16图标放大!

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

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


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

微软UX图标指南表示:

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

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

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

  • “图标文件也需要8位和4位调色板版本,以支持远程桌面的默认设置。”

  • “应该只包含256x256像素图像的32位副本,并且只有256x256像素图像应该压缩为PNG,以保持文件大小较小。”

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

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

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

微软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。

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

| 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应用程序开发指南说:

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

下面是一些程序的列表以及它们在ICO文件中包含的大小:

应用程序 图标 16 20. 24 32 40 48 60 64 72 80 96 256
谷歌Chrome 106
IntelliJ IDEA 2022.2.3
MS PowerToys 0.0.3.0 .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

笔记

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