我尝试从exe中获取图标,我使用了下面的代码段
C#
FileStream fs = new FileStream(icoFileNam, FileMode.OpenOrCreate);
Icon ico = Icon.ExtractAssociatedIcon(exefilePath);
ico.Save(fs);
保存的图像缺乏质量。我已将图像保存为.ico文件。
有谁知道如何保留exefile中存在的图标的原始质量?
答案 0 :(得分:2)
在最常见的情况下,您可以通过Icon.ToBitmap()方法使用提取的图标位图数据。您可以将此图像保存为不同的格式。但是将图标保存为"true" .ico file非常困难。
问题是.Net中没有用于图标图像的嵌入式编码器。因此,默认情况下,结果已保存为低色图像。如果这是不可接受的,建议MS手动将原始位图数据保存为.ico。我建议你使用已经实现此任务的IconLib library:
Icon icon = Icon.ExtractAssociatedIcon(@"C:\Windows\System32\notepad.exe");
MultiIcon mIcon = new MultiIcon();
SingleIcon sIcon = mIcon.Add("notepad");
sIcon.CreateFrom(icon.ToBitmap(), IconOutputFormat.Vista);
sIcon.Save(@"c:\notepad.ico");