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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM