首页 > 代码库 > C# Byte[]、Image、Bitmap 之间的相互转换

C# Byte[]、Image、Bitmap 之间的相互转换

//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;  
}  

 

C# Byte[]、Image、Bitmap 之间的相互转换