也许这是一个非常容易解决的问题,但我还没有找到完美的解决方案。我正在尝试使用 C# 将 png 转换为 ico并发现在C/C# 中将 .PNG 转换为 .ICO的问题,该问题提供了如下的工作解决方案:
using (FileStream stream = File.OpenWrite(@"C:\temp\test.ico"))
{
Bitmap bitmap = (Bitmap)Image.FromFile(@"c:\temp\test.png");
Icon.FromHandle(bitmap.GetHicon()).Save(stream);
}
对于我自己的项目,我将这种方法稍微更改为:
string pngFile = "path/to/pngfile";
using (Bitmap bitmap = new Bitmap(pngFile))
{
using (Icon icon = Icon.FromHandle(bitmap.GetHicon()))
{
using (MemoryStream stream = new MemoryStream())
{
icon.Save(stream);
// something interesting with icon here
}
}
}
我遇到的问题是生成的 ico 质量很差,我猜它被调整为 16x16 并失去了一些颜色深度,也许现在只有 16 种颜色?如何转换为更高质量的 ico 文件?