c#中字节数组byte[]、图片image、流stream,字符串string、内存流MemoryStream、文件file,之间的转换

来源:互联网 发布:k3 销售订单跟踪 sql 编辑:程序博客网 时间:2024/04/29 18:35

字节数组byte[]与图片image之间的转化

字节数组转换成图片

public static Image byte2img(byte[] buffer){    MemoryStream ms = new MemoryStream(buffer);    ms.Position = 0;    Image img = Image.FromStream(ms);    ms.Close();    return img;}

图片转化为字节数组

public static byte[] byte2img(Bitmap Bit){    byte[] back = null;    MemoryStream ms = new MemoryStream();    Bit.Save(ms, System.Drawing.Imaging.ImageFormat.Png);    back = ms.GetBuffer();    return back;}

字节数组byte[]与字符串string之间的编码解码

字符串到字节数组的编码

public static byte[] str2byte(string str){    byte[] data = System.Text.Encoding.UTF8.GetBytes(param);    //byte[] data = Convert.FromBase64String(param);    //有很多种编码方式,可参考:http://blog.csdn.net/luanpeng825485697/article/details/77622243    return data;}

字节数组到字符串的解码

public static string str2byte(byte[] data){    string str = System.Text.Encoding.UTF8.GetString(data);    //str = Convert.ToBase64String(data);    //有很多种编码方式,可参考:http://blog.csdn.net/luanpeng825485697/article/details/77622243    return str;}

字节数组byte[]与内存流MemoryStream之间的转换

字节数组转化为输入内存流

public static MemoryStream byte2stream(byte[] data){    MemoryStream inputStream = new MemoryStream(data);    return inputStream;}

输出内存流转化为字节数组

public static byte[] byte2stream(MemoryStream outStream){    return outStream.ToArray();}

字节数组byte[]与流stream之间的转换

将 Stream 转成 byte[]

public byte[] stream2byte(Stream stream){    byte[] bytes = new byte[stream.Length];    stream.Read(bytes, 0, bytes.Length);    // 设置当前流的位置为流的开始    stream.Seek(0, SeekOrigin.Begin);    return bytes;}

将 byte[] 转成 Stream

public Stream byte2stream(byte[] bytes){    Stream stream = new MemoryStream(bytes);    return stream;}

流Stream 和 文件file之间的转换

将 Stream 写入文件

public void stream2file(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();}

从文件读取 Stream

public Stream file2stream(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;}
阅读全文
2 0
原创粉丝点击