提取分配给文件的正确 16x16 图标?
我绑定了 SHGetFileInfo 和 ExtractIconEx,两者都返回一个普通的 32x32 图标和只有 16 种颜色的 16x16 图标,看起来很糟糕。 如何提取全彩图标?
我的代码
SHFILEINFO shinfo = new SHFILEINFO();
IntPtr hImgSmall = SHGetFileInfo(fileName, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), SHGFI_ICON | SHGFI_SMALLICON);
Icon icon = (Icon)System.Drawing.Icon.FromHandle(shinfo.hIcon).Clone();
DestroyIcon(shinfo.hIcon);
I tied SHGetFileInfo and ExtractIconEx, both return a normal 32x32 icon and 16x16 with only 16 colors, and it looks awful. How do I extract a full color icon?
My code
SHFILEINFO shinfo = new SHFILEINFO();
IntPtr hImgSmall = SHGetFileInfo(fileName, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), SHGFI_ICON | SHGFI_SMALLICON);
Icon icon = (Icon)System.Drawing.Icon.FromHandle(shinfo.hIcon).Clone();
DestroyIcon(shinfo.hIcon);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您尝试过以下操作吗?
Did you tried the following?
我尝试了这个示例 链接文本 并有效......得到16*16 带 Alpha 通道。
尝试一下。
I tried this example link text and works.....got 16*16 with alpha channel.
Try it.
您可以在此处找到有效的操作方法:http://support.microsoft.com/?scid=kb;en-us;319350&x=14&y=9
You can find a working how-to here: http://support.microsoft.com/?scid=kb;en-us;319350&x=14&y=9