我的 Windows 应用程序的图标应包括哪些图标尺寸?
Posted
技术标签:
【中文标题】我的 Windows 应用程序的图标应包括哪些图标尺寸?【英文标题】:Which icon sizes should my Windows application's icon include? 【发布时间】:2011-03-15 05:56:34 【问题描述】:我有一个可以在 Windows XP 和更新版本(即 Vista/7)中运行的 Windows 应用程序。根据Vista UI Guidelines,标准尺寸为16x16、32x32、48x48、256x256(XP标准尺寸不包括256x256图标)。除了这些尺寸,我还有 96x96 和 128x128(并且可以创建更多)。
我应该包括哪些图标尺寸? shell 会真正使用“非标准”尺寸,还是我会简单地膨胀我的应用程序?
【问题讨论】:
这个网站是许多平台图标大小的一个很好的参考:iconhandbook.co.uk/reference/chart 【参考方案1】:我花了一些时间详细检查它。我创建了一个图标,其图像大小为 16、24、32、40、48、64、96、128 和 256。然后我检查了显示的是哪个图像。所有这些都是用正常的 96dpi 完成的。如果使用更大的 DPI,则可以使用更大的尺寸(仅在 Windows 7 中检查了一下)。结果:
Windows XP:
浏览器视图: 详细信息/列表:16 图标:32 图块/缩略图:48 右键->属性/选择新图标:32 快速入门区:16 桌面:32Windows 7:
浏览器视图: 详情/列表/小符号:16个 所有其他选项:256(必要时调整大小) 右键->属性/选择新图标:32 固定到任务栏:32 右键菜单:16 桌面: 小符号:32 中等符号:48 大符号:256(必要时调整大小) 使用 Ctrl+鼠标滚轮进行缩放:16、32、48、256Windows 运行时:(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的不应该压缩。
【讨论】:
在此处查看我的答案 (***.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 的情况下,这并不完全准确,实际上 *** 上的答案都不是,我在尝试使用像素艺术作为图标时发现了这一点,但它在不应该的时候被重新缩放(在这种情况下很容易看出插值和平滑窗口的原因)即使我使用了这篇文章中的尺寸。
所以我制作了一个应用程序并完成了所有 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 |
【讨论】:
以上是关于我的 Windows 应用程序的图标应包括哪些图标尺寸?的主要内容,如果未能解决你的问题,请参考以下文章