c# 中Bitmap, byte[] ,Stream 文件相互转换
来源:互联网 发布:stl源码剖析 代码 编辑:程序博客网 时间:2024/06/09 19:25
//byte[] 转图片public static Bitmap BytesToBitmap(byte[] Bytes) { MemoryStream stream = null; try { stream = new MemoryStream(Bytes); return new Bitmap((Image)new Bitmap(stream)); } catch (ArgumentNullException ex) { throw ex; } catch (ArgumentException ex) { throw ex; } finally { stream.Close(); } } //图片转byte[] public static byte[] BitmapToBytes(Bitmap Bitmap) { MemoryStream ms = null; try { ms = new MemoryStream(); Bitmap.Save(ms, Bitmap.RawFormat); byte[] byteImage = new Byte[ms.Length]; byteImage = ms.ToArray(); return byteImage; } catch (ArgumentNullException ex) { throw ex; } finally { ms.Close(); } } }=====================* Stream 和 byte[] 之间的转换 * - - - - - - - - - - - - - - - - - - - - - - - *//// <summary>/// 将 Stream 转成 byte[]/// </summary>public byte[] StreamToBytes(Stream stream){ byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); return bytes;}/// <summary>/// 将 byte[] 转成 Stream/// </summary>public Stream BytesToStream(byte[] bytes){ Stream stream = new MemoryStream(bytes); return stream;}/* - - - - - - - - - - - - - - - - - - - - - - - - * Stream 和 文件之间的转换 * - - - - - - - - - - - - - - - - - - - - - - - *//// <summary>/// 将 Stream 写入文件/// </summary>public void StreamToFile(Stream stream,string fileName){ // 把 Stream 转换成 byte[] byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); // 把 byte[] 写入文件 FileStream fs = new FileStream(fileName, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); bw.Write(bytes); bw.Close(); fs.Close();}/// <summary>/// 从文件读取 Stream/// </summary>public Stream FileToStream(string fileName){ // 打开文件 FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); // 读取文件的 byte[] byte[] bytes = new byte[fileStream.Length]; fileStream.Read(bytes, 0, bytes.Length); fileStream.Close(); // 把 byte[] 转换成 Stream Stream stream = new MemoryStream(bytes); return stream;}