おそらくこれは解決するのが非常に簡単な問題ですが、私はまだ完璧な解決策を見つけていません. 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 ファイルに変換するにはどうすればよいですか?