c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换
1 c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换 2 3 /*********字节数组byte[]与图片image之间的转化**********/ 4 //字节数组转换成图片 5 public static Image byte2img(byte[] buffer) 6 { 7 MemoryStream ms = new MemoryStream(buffer); 8 ms.Position = 0; 9 Image img = Image.FromStream(ms); 10 ms.Close(); 11 return img; 12 } 13 14 15 //图片转化为字节数组 16 public static byte[] byte2img(Bitmap Bit) 17 { 18 byte[] back = null; 19 MemoryStream ms = new MemoryStream(); 20 Bit.Save(ms, System.Drawing.Imaging.ImageFormat.Png); 21 back = ms.GetBuffer(); 22 return back; 23 } 24 25 26 /**********字节数组byte[]与字符串string之间的编码解码*****/ 27 //字符串到字节数组的编码 28 public static byte[] str2byte(string str) 29 { 30 byte[] data = System.Text.Encoding.UTF8.GetBytes(param); 31 //byte[] data = Convert.FromBase64String(param); 32 //有很多种编码方式,可参考:http://blog.csdn.net/luanpeng825485697/article/details/77622243 33 return data; 34 } 35 36 37 //字节数组到字符串的解码 38 public static string str2byte(byte[] data) 39 { 40 string str = System.Text.Encoding.UTF8.GetString(data); 41 //str = Convert.ToBase64String(data); 42 //有很多种编码方式,可参考:http://blog.csdn.net/luanpeng825485697/article/details/77622243 43 return str; 44 } 45 46 /****字节数组byte[]与内存流MemoryStream之间的转换****/ 47 //字节数组转化为输入内存流 48 public static MemoryStream byte2stream(byte[] data) 49 { 50 MemoryStream inputStream = new MemoryStream(data); 51 return inputStream; 52 } 53 54 55 //输出内存流转化为字节数组 56 public static byte[] byte2stream(MemoryStream outStream) 57 { 58 return outStream.ToArray(); 59 } 60 61 /************字节数组byte[]与流stream之间的转换********/ 62 //将 Stream 转成 byte[] 63 public byte[] stream2byte(Stream stream) 64 { 65 byte[] bytes = new byte[stream.Length]; 66 stream.Read(bytes, 0, bytes.Length); 67 // 设置当前流的位置为流的开始 68 stream.Seek(0, SeekOrigin.Begin); 69 return bytes; 70 } 71 72 73 //将 byte[] 转成 Stream 74 public Stream byte2stream(byte[] bytes) 75 { 76 Stream stream = new MemoryStream(bytes); 77 return stream; 78 } 79 80 流Stream 和 文件file之间的转换 81 82 //将 Stream 写入文件 83 public void stream2file(Stream stream,string fileName) 84 { 85 // 把 Stream 转换成 byte[] 86 byte[] bytes = new byte[stream.Length]; 87 stream.Read(bytes, 0, bytes.Length); 88 // 设置当前流的位置为流的开始 89 stream.Seek(0, SeekOrigin.Begin); 90 // 把 byte[] 写入文件 91 FileStream fs = new FileStream(fileName, FileMode.Create); 92 BinaryWriter bw = new BinaryWriter(fs); 93 bw.Write(bytes); 94 bw.Close(); 95 fs.Close(); 96 } 97 98 99 //从文件读取 Stream 100 public Stream file2stream(string fileName) 101 { 102 // 打开文件 103 FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); 104 // 读取文件的 byte[] 105 byte[] bytes = new byte[fileStream.Length]; 106 fileStream.Read(bytes, 0, bytes.Length); 107 fileStream.Close(); 108 // 把 byte[] 转换成 Stream 109 Stream stream = new MemoryStream(bytes); 110 return stream; 111 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决