【问题标题】:How does the Windows Shell resize icon overlays?Windows Shell 如何调整图标覆盖的大小?
【发布时间】:2014-04-09 21:01:07
【问题描述】:

我编写了一个 Shell Icon Overlay 处理程序,其中包含一个带有 256、48、32 和 16 位图标的多图像图标。覆盖位在左下角,分别为32、15、10、6位。

在 Windows 资源管理器中,视图设置为小,图标为 16 位,所选覆盖占用 6 位。中号图标:48 位与 10 位重叠。一切都符合我的预期。

当视图设置为大时,会使用一个 96 位的图标,上面覆盖有 15 位。这是 48 位覆盖的 15 位,还是 256 位的下采样,我不知道。如果我向多图像添加 96 位叠加层,使用 32 位叠加层(仅作为测试),使用的叠加层仍显示为 15 位。

当视图设置为超大时,使用的覆盖仍然只有 15 位。只是一个非常大的图标上的一个污点。

以上所有内容都在 Windows 7 上。在 Windows 8 桌面上,可以看到相同的结果,除了特大图标现在只覆盖了 12*12 位图,明显是从更大尺寸(15?32 ?)

任何人都可以为我应该提供什么尺寸的叠加层以最大限度地提高观看体验提供明确的答案吗?

【问题讨论】:

    标签: windows icons overlay windows-shell


    【解决方案1】:

    如果您在 imageres.dll 中看到 lnk 文件的叠加图标,您将看到该图标包含以下格式:

    • 48x48x16
    • 32x32x16
    • 16x16x16
    • 48x48x8
    • 32x32x8
    • 16x16x8
    • 256x256x32
    • 48x48x32
    • 32x32x32
    • 16x16x32

    我认为,如果 Microsoft 将此类格式用于内部覆盖图标,那么使用相同格式也是最佳变体。

    【讨论】:

    • 颜色深度是否可能对算法很重要? Visual Studio 不支持 32 位颜色图标,所以我无法尝试。我已经尝试过低于它的颜色深度,但没有发现任何差异。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2012-02-12
    • 1970-01-01
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多