WinForms应用程序中的图标显示
当显示应用程序图标时,是 Windows 决定使用哪个版本(位深度)还是以某种方式在 ICO 文件中设置?
如果我创建仅具有 32 位颜色(24 位 + 8 位透明度)的 ICO 文件,则该图标在 Win XP 上显示良好。 例如,如果我添加 4 位版本,Windows 将始终使用此 4 位版本,即使也有 32 位图像。 我的显示器设置为 32 位颜色。 如果这很重要的话,我正在使用 Greenfish 图标编辑器。
有什么方法可以让 Windows 使用 32 位图标而不是 4 位图标吗?
编辑:我使用 IcoFX 打开原始 ICO 文件并重新保存它,现在 Windows 总是选择正确的位深度。 有趣的...
When an application icon is displayed, is it Windows who decides which version (bit depth) to use or is it somehow set in the ICO file?
If I create an ICO file only with 32bit colors (24bit + 8bit transparency), the icon displays fine on Win XP. If I add for example 4bit version, Windows use always this 4bit version, even if there are 32bit images as well. My monitor is set to 32bit colors. I am using Greenfish Icon Editor if this is any important.
Is there any way how to push Windows to use the 32bit icons instead of the 4bit ones?
EDIT: I used IcoFX to just open the original ICO file and re-save it and now Windows always chooses the right bit depth. Interesting...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Windows 根据其绘制表面的位深度来选择它。 它还取决于 .ICO 文件(或资源)内图标的实际顺序,这就是为什么使用 IcoFX 会得到不同的结果。
It's chosen by Windows based on the bit-depth of the surface it's drawn onto. It also depends on the actual order of the icons inside the .ICO file (or resource), that's why you get different result with IcoFX.
Windows 将使用它可以显示的任何位深度的图标,因此您对事物应该如何工作的理解是正确的。
我没有使用过 Greenfish,所以不知道它是否正确创建了图标文件。 如果您使用的是 VS2008,您可以尝试(免费)Axialis IconWorkshop 来双击 -检查图标文件(它们也有非免费的独立版本)。
Windows will use the icon with whatever bit depth it can display, so your understanding of how things should work is correct.
I've not used Greenfish, so don't know if it is creating the icon file correctly. If you're using VS2008 you could try the (free) Axialis IconWorkshop to double-check the icon file (they have a non-free standalone version also).