也许这是一个很容易解决的问题,但我还没有找到完美的解决方案。
我正在尝试使用C#将png转换为ico,并找到了以下问题:converting .PNG to .ICO in C/C#,其中提供了一种可行的解决方案,如下所示:
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文件?