7

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

4

3 に答える 3

3

http://www.codeproject.com/Tips/627823/Fast-and-high-quality-Bitmap-to-icon-converterを確認してください。 これは、ビットマップを png に変換する明確で高速なソリューションです。

于 2013-09-18T05:44:46.793 に答える