object与byte[]的相互转换:数组
/// <summary> /// 工具类:对象与二进制流间的转换 /// </summary> class ByteConvertHelper { /// <summary> /// 将对象转换为byte数组 /// </summary> /// <param name="obj">被转换对象</param> /// <returns>转换后byte数组</returns> public static byte[] Object2Bytes(object obj) { byte[] buff; using (MemoryStream ms = new MemoryStream()) { IFormatter iFormatter = new BinaryFormatter(); iFormatter.Serialize(ms, obj); buff = ms.GetBuffer(); } return buff; } /// <summary> /// 将byte数组转换成对象 /// </summary> /// <param name="buff">被转换byte数组</param> /// <returns>转换完成后的对象</returns> public static object Bytes2Object(byte[] buff) { object obj; using (MemoryStream ms = new MemoryStream(buff)) { IFormatter iFormatter = new BinaryFormatter(); obj = iFormatter.Deserialize(ms); } return obj; } }
文件与byte数组相互转换:
缓存
/// <summary> /// 工具类:文件与二进制流间的转换 /// </summary> class FileBinaryConvertHelper { /// <summary> /// 将文件转换为byte数组 /// </summary> /// <param name="path">文件地址</param> /// <returns>转换后的byte数组</returns> public static byte[] File2Bytes(string path) { if(!File.Exists(path)) { return new byte[0]; } FileInfo fi = new FileInfo(path); byte[] buff = new byte[fi.Length]; FileStream fs = fi.OpenRead(); fs.Read(buff, 0, Convert.ToInt32(fs.Length)); fs.Close(); return buff; } /// <summary> /// 将byte数组转换为文件并保存到指定地址 /// </summary> /// <param name="buff">byte数组</param> /// <param name="savepath">保存地址</param> public static void Bytes2File(byte[] buff, string savepath) { if (File.Exists(savepath)) { File.Delete(savepath); } FileStream fs = new FileStream(savepath, FileMode.CreateNew); BinaryWriter bw = new BinaryWriter(fs); bw.Write(buff, 0, buff.Length); bw.Close(); fs.Close(); } }
原文:http://my.oschina.net/Tsybius2014/blog/352409工具
新增,spa
Image与byte数组相互转换:
.net
/// <summary> /// 从byte数组建立Image /// </summary> public static Image Bytes2Image(byte[] bytes) { System.IO.MemoryStream stream = new System.IO.MemoryStream(); stream.Write(bytes, 0, bytes.Length); Image image = Image.FromStream(stream); return image; } /// <summary> /// 将Image转化为byte数组,使用缓存文件中转 /// </summary> public static byte[] Image2Bytes_tmpFile(Image image, ImageFormat imageFormat = null) { if (imageFormat == null) imageFormat = ImageFormat.Jpeg; String tmpFilePath = AppDomain.CurrentDomain.BaseDirectory + DateTime.Now.Ticks + ".stream"; image.Save(tmpFilePath, imageFormat); // 保存图像到文件 byte[] bytes = File2Bytes(tmpFilePath); // 从文件中获取字节数组 if (File.Exists(tmpFilePath)) File.Delete(tmpFilePath); //删除文件 return bytes; }