C#.NET:将Icon转换为byte []然后再返回

emp*_*set 15 .net c#

如何在System.Drawing.Icon类型和byte[]?之间进行转换?我正在寻找一些可以(希望)在.NET2中运行的简单东西.

Jon*_*eet 24

你通过a MemoryStream,基本上:

public static byte[] IconToBytes(Icon icon)
{
    using (MemoryStream ms = new MemoryStream())
    {
        icon.Save(ms);
        return ms.ToArray();
    }
}

public static Icon BytesToIcon(byte[] bytes)
{
    using (MemoryStream ms = new MemoryStream(bytes))
    {
        return new Icon(ms);
    }
}
Run Code Online (Sandbox Code Playgroud)

(历史记录:我不确定处理传递给构造函数的流是否安全.这样做不安全的Bitmap,例如......保持流并且可以读取它稍后.显然它没关系Icon.我希望MSDN让这个更清楚......)