【问题标题】:Which icon sizes should my Windows application's icon include?我的 Windows 应用程序的图标应包括哪些图标尺寸?
【发布时间】:2011-03-15 05:56:34
【问题描述】:

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

我应该包括哪些图标尺寸? shell 会真正使用“非标准”尺寸,还是我会简单地膨胀我的应用程序?

【问题讨论】:

标签: windows icons desktop


【解决方案1】:

我花了一些时间详细检查它。我创建了一个图标,其图像大小为 16、24、32、40、48、64、96、128 和 256。然后我检查了显示的是哪个图像。所有这些都是用正常的 96dpi 完成的。如果使用更大的 DPI,则可以使用更大的尺寸(仅在 Windows 7 中检查了一下)。结果:

Windows XP:

  • 浏览器视图:
    • 详细信息/列表:16
    • 图标:32
    • 图块/缩略图:48
  • 右键->属性/选择新图标:32
  • 快速入门区:16
  • 桌面:32

Windows 7:

  • 浏览器视图:
    • 详情/列表/小符号:16个
    • 所有其他选项:256(必要时调整大小)
  • 右键->属性/选择新图标:32
  • 固定到任务栏:32
    • 右键菜单:16
  • 桌面:
    • 小符号:32
    • 中等符号:48
    • 大符号:256(必要时调整大小)
    • 使用 Ctrl+鼠标滚轮进行缩放:16、32、48、256

Windows 运行时:(from here)

  • 主图块:150x150、310x150(宽版)
  • 小标志:30x30
  • 徽章(用于锁屏):24x24,单色
  • 启动画面:620x300
  • 商店:50x50

结果是: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 图标的第二个版本。请参阅here 了解更多信息。

【讨论】:

  • 好吧,here 上面写着 64px 也是必需的,official icon guidelines 上写着 20px、24px 和 40px 也是推荐的。 40px 图标似乎用于 alt+tab 和 baloons,其他似乎根据 DPI 使用(例如,在更高 DPI 屏幕中使用 20px 而不是 16px,否则从更大的 32px 尺寸缩小,这可能看起来更丑)。尚未测试。
  • 我做了更多的测试。为了在桌面上显示,当我在 Windows 7 上将其设置为 144dpi(“150%”)时,对于可能的最小图标,它使用 24px 图标(如果存在,否则为 16px)。从图标指南来看,Vista 上似乎有一个“经典模式”,它也使用 64px 图标。但是,Windows 7 不使用它。相反,只有 256px 的图标被调整大小。
  • 有趣,感谢您的发现。无论如何,我不知道有多少应用程序有超过 16、32、48 和(希望)256 像素的图标。我猜很少。但也许用户会注意到,因为其他图标之间的一个图标更清晰。
  • 如果应用程序是一个实用程序而不是非常流行的软件,或者是旧的,它会丢失一半的时间......甚至一些 Visual Studio 的图标(用于文件类型的图标)甚至没有 48px 版本.
  • Windows 10 的更新会很棒。似乎在 96 DPI 时,图标是 24x24,但 Windows 10 也支持更高的 DPI 设置。
【解决方案2】:

在 Windows 7 中使用 8、16、20、24、32、40、48、64、96、128 和 256 像素(PNG 中为 256)的图标进行一些测试后:

  • 在 100% 分辨率下:资源管理器使用 16、40、48 和 256。Windows 照片查看器使用 96。绘画使用 256。
  • 在 125% 分辨率下:Explorer 使用 20、40 和 256。Windows Photo Viewer 使用 96。Paint 使用 256。
  • 在 150% 分辨率下:Explorer 使用 24、48 和 256。Windows Photo Viewer 使用 96。Paint 使用 256。
  • 在 200% 分辨率下:资源管理器使用 40、64、96 和 256。Windows 照片查看器使用 128。绘画使用 256。

所以 8、32 从未使用过(32 对我来说很奇怪),而 128 仅被具有非常高 dpi 屏幕的 Windows 照片查看器使用,即从未使用过。

这意味着您的图标至少应为 Windows 7 提供 16、48 和 256。为了支持具有高分辨率的新屏幕,您应该提供 16、20、24、40、48、64、96 和 256。对于 Windows 7、所有图片都可以使用PNG压缩,但是为了向后兼容Windows XP,16到48的不应该压缩。

【讨论】:

  • 在此处查看我的答案 (stackoverflow.com/questions/12385143/…) 但如果您在 .ico 文件中压缩 256x256 图像... Windows XP 系统将无法打开该文件。你会得到一个带有 HRESULT 0x88982F07 的 FileFormatException。
  • 值得一提的是那些高 DPI 版本需要以 24bpp 模式保存,我尝试将它们存储在 8 位颜色模式和 Windows 7 使用 256px 版本而不是 125% DPI 的 20x20 像素。
  • 这很简单,但很详尽。考虑 DPI 非常重要。
【解决方案3】:

Microsoft UX icon guideline 说:

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

对我来说,这意味着(但遗憾的是没有明确说明)您应该提供这 4 种尺寸。

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

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

  • “应仅包含 256x256 像素图像的 32 位副本,并且应仅压缩 256x256 像素图像 [as PNG] 以减小文件大小。”

【讨论】:

    【解决方案4】:

    在 Windows 10 的情况下,这并不完全准确,实际上 stackoverflow 上的答案都不是,我在尝试使用像素艺术作为图标时发现了这一点,但它在不应该的时候被重新缩放(在这种情况下很容易看出插值和平滑窗口的原因)即使我使用了这篇文章中的尺寸。

    所以我制作了一个应用程序并完成了所有 DPI 设置的工作,请在此处查看:
    Windows 10 all icon resolutions on all DPI settings
    您还可以使用我的应用程序创建图标,还可以使用最近邻插值和平滑处理,这是我见过的任何糟糕的编辑器都没有做到的。

    如果您只想要分辨率:
    16、20、24、28、30、31、32、40、42、47、48、56、60、63、84、256
    并且您应该使用所有 PNG 图标,并且您在这些图标旁边放置的任何内容都不会显示。看看我的post为什么。

    【讨论】:

    • 抱歉,您是说 64 吗?您的帖子有 84,其他任何地方都没有提到,但没有提到 64,这似乎是默认尺寸之一。
    【解决方案5】:

    (Windows 8/10 的更新答案)

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

    仍包含具有这些大小的 .ICO 文件以支持旧版体验:

    • 16x16
    • 24x24
    • 32x32
    • 48x48
    • 256x256

    【讨论】:

    • 该页面中没有尺码列表。
    【解决方案6】:

    不是 96x96,而是使用 64x64。我通常使用:

    • 16 - 状态/标题栏按钮
    • 32 - 桌面图标
    • 48 - 文件夹视图
    • 64/128 - 其他尺寸

    256 在 XP 上也能正常工作,但是,旧的资源编译器有时会抱怨“内存不足”错误。

    【讨论】:

    • 我看到你以前处理过Java。如何使用 Java 实现这种行为?问题是系统任务栏中显示的图标与标题栏中的图标相比要大得多,并且系统无法正确调整它们的大小。我能做的最多的是 stage.getIcons().add(image); 但它不会让我指定它属于什么大小和位置,例如任务栏、文件夹视图或任何其他。我正在使用 JavaFX 8
    • @someFolk java 编译为“类”文件或“jar”文件(这是类文件 + 清单的 zip)。换句话说,它不会编译为 PE(Windows 可执行文件)。但是,有一些工具可以为您构建包装器 - 基本上是包含 jar 作为资源的小程序(在程序运行时提取并运行)。 answer here mentions a few of them 这意味着您的问题取决于您使用的程序。但是,有编辑资源的工具(例如:Resource Hacker
    【解决方案7】:

    来自Microsoft MSDN recommendations

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

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

    • 16 x 16,
    • 24 x 24,
    • 32 x 32,
    • 48 x 48,
    • 64 x 64,
    • 256 x 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。

    【讨论】:

      【解决方案8】:

      TL;博士。在Visual Studio 2019 中,当您将Icon 资源添加到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   |
      

      【讨论】:

        猜你喜欢
        • 2016-11-09
        • 2012-04-27
        • 2015-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多