zoukankan      html  css  js  c++  java
  • c# Bitmap byte[] Stream 文件相互转换



    [csharp] view plaincopy
     
     
     
    1. //byte[] 转图片  
    2. public static Bitmap BytesToBitmap(byte[] Bytes)  
    3.         {  
    4.             MemoryStream stream = null;  
    5.             try  
    6.             {  
    7.                 stream = new MemoryStream(Bytes);  
    8.                 return new Bitmap((Image)new Bitmap(stream));  
    9.             }  
    10.             catch (ArgumentNullException ex)  
    11.             {  
    12.                 throw ex;  
    13.             }  
    14.             catch (ArgumentException ex)  
    15.             {  
    16.                 throw ex;  
    17.             }  
    18.             finally  
    19.             {  
    20.                 stream.Close();  
    21.             }  
    22.         }   
    23.   
    24. //图片转byte[]   
    25.         public static byte[] BitmapToBytes(Bitmap Bitmap)  
    26.         {  
    27.             MemoryStream ms = null;  
    28.             try  
    29.             {  
    30.                 ms = new MemoryStream();  
    31.                 Bitmap.Save(ms, Bitmap.RawFormat);  
    32.                 byte[] byteImage = new Byte[ms.Length];  
    33.                 byteImage = ms.ToArray();  
    34.                 return byteImage;  
    35.             }  
    36.             catch (ArgumentNullException ex)  
    37.             {  
    38.                 throw ex;  
    39.             }  
    40.             finally  
    41.             {  
    42.                 ms.Close();  
    43.             }  
    44.         }  
    45.     }  
    46.   
    47. =====================  
    48.   
    49. * Stream 和 byte[] 之间的转换  
    50.  * - - - - - - - - - - - - - - - - - - - - - - - */  
    51. /// <summary>  
    52. /// 将 Stream 转成 byte[]  
    53. /// </summary>  
    54. public byte[] StreamToBytes(Stream stream)  
    55. {  
    56.     byte[] bytes = new byte[stream.Length];  
    57.     stream.Read(bytes, 0, bytes.Length);  
    58.   
    59.     // 设置当前流的位置为流的开始  
    60.     stream.Seek(0, SeekOrigin.Begin);  
    61.     return bytes;  
    62. }  
    63.   
    64. /// <summary>  
    65. /// 将 byte[] 转成 Stream  
    66. /// </summary>  
    67. public Stream BytesToStream(byte[] bytes)  
    68. {  
    69.     Stream stream = new MemoryStream(bytes);  
    70.     return stream;  
    71. }  
    72.   
    73.   
    74. /* - - - - - - - - - - - - - - - - - - - - - - - -  
    75.  * Stream 和 文件之间的转换 
    76.  * - - - - - - - - - - - - - - - - - - - - - - - */  
    77. /// <summary>  
    78. /// 将 Stream 写入文件  
    79. /// </summary>  
    80. public void StreamToFile(Stream stream,string fileName)  
    81. {  
    82.     // 把 Stream 转换成 byte[]  
    83.     byte[] bytes = new byte[stream.Length];  
    84.     stream.Read(bytes, 0, bytes.Length);  
    85.     // 设置当前流的位置为流的开始  
    86.     stream.Seek(0, SeekOrigin.Begin);  
    87.   
    88.     // 把 byte[] 写入文件  
    89.     FileStream fs = new FileStream(fileName, FileMode.Create);  
    90.     BinaryWriter bw = new BinaryWriter(fs);  
    91.     bw.Write(bytes);  
    92.     bw.Close();  
    93.     fs.Close();  
    94. }  
    95.   
    96. /// <summary>  
    97. /// 从文件读取 Stream  
    98. /// </summary>  
    99. public Stream FileToStream(string fileName)  
    100. {              
    101.     // 打开文件  
    102.     FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);  
    103.     // 读取文件的 byte[]  
    104.     byte[] bytes = new byte[fileStream.Length];  
    105.     fileStream.Read(bytes, 0, bytes.Length);  
    106.     fileStream.Close();  
    107.     // 把 byte[] 转换成 Stream  
    108.     Stream stream = new MemoryStream(bytes);  
    109.     return stream;  
    110. }   

    [csharp] view plaincopy
     
     
     
    1. //byte[] 转图片  
    2. public static Bitmap BytesToBitmap(byte[] Bytes)  
    3.         {  
    4.             MemoryStream stream = null;  
    5.             try  
    6.             {  
    7.                 stream = new MemoryStream(Bytes);  
    8.                 return new Bitmap((Image)new Bitmap(stream));  
    9.             }  
    10.             catch (ArgumentNullException ex)  
    11.             {  
    12.                 throw ex;  
    13.             }  
    14.             catch (ArgumentException ex)  
    15.             {  
    16.                 throw ex;  
    17.             }  
    18.             finally  
    19.             {  
    20.                 stream.Close();  
    21.             }  
    22.         }   
    23.   
    24. //图片转byte[]   
    25.         public static byte[] BitmapToBytes(Bitmap Bitmap)  
    26.         {  
    27.             MemoryStream ms = null;  
    28.             try  
    29.             {  
    30.                 ms = new MemoryStream();  
    31.                 Bitmap.Save(ms, Bitmap.RawFormat);  
    32.                 byte[] byteImage = new Byte[ms.Length];  
    33.                 byteImage = ms.ToArray();  
    34.                 return byteImage;  
    35.             }  
    36.             catch (ArgumentNullException ex)  
    37.             {  
    38.                 throw ex;  
    39.             }  
    40.             finally  
    41.             {  
    42.                 ms.Close();  
    43.             }  
    44.         }  
    45.     }  
    46.   
    47. =====================  
    48.   
    49. * Stream 和 byte[] 之间的转换  
    50.  * - - - - - - - - - - - - - - - - - - - - - - - */  
    51. /// <summary>  
    52. /// 将 Stream 转成 byte[]  
    53. /// </summary>  
    54. public byte[] StreamToBytes(Stream stream)  
    55. {  
    56.     byte[] bytes = new byte[stream.Length];  
    57.     stream.Read(bytes, 0, bytes.Length);  
    58.   
    59.     // 设置当前流的位置为流的开始  
    60.     stream.Seek(0, SeekOrigin.Begin);  
    61.     return bytes;  
    62. }  
    63.   
    64. /// <summary>  
    65. /// 将 byte[] 转成 Stream  
    66. /// </summary>  
    67. public Stream BytesToStream(byte[] bytes)  
    68. {  
    69.     Stream stream = new MemoryStream(bytes);  
    70.     return stream;  
    71. }  
    72.   
    73.   
    74. /* - - - - - - - - - - - - - - - - - - - - - - - -  
    75.  * Stream 和 文件之间的转换 
    76.  * - - - - - - - - - - - - - - - - - - - - - - - */  
    77. /// <summary>  
    78. /// 将 Stream 写入文件  
    79. /// </summary>  
    80. public void StreamToFile(Stream stream,string fileName)  
    81. {  
    82.     // 把 Stream 转换成 byte[]  
    83.     byte[] bytes = new byte[stream.Length];  
    84.     stream.Read(bytes, 0, bytes.Length);  
    85.     // 设置当前流的位置为流的开始  
    86.     stream.Seek(0, SeekOrigin.Begin);  
    87.   
    88.     // 把 byte[] 写入文件  
    89.     FileStream fs = new FileStream(fileName, FileMode.Create);  
    90.     BinaryWriter bw = new BinaryWriter(fs);  
    91.     bw.Write(bytes);  
    92.     bw.Close();  
    93.     fs.Close();  
    94. }  
    95.   
    96. /// <summary>  
    97. /// 从文件读取 Stream  
    98. /// </summary>  
    99. public Stream FileToStream(string fileName)  
    100. {              
    101.     // 打开文件  
    102.     FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);  
    103.     // 读取文件的 byte[]  
    104.     byte[] bytes = new byte[fileStream.Length];  
    105.     fileStream.Read(bytes, 0, bytes.Length);  
    106.     fileStream.Close();  
    107.     // 把 byte[] 转换成 Stream  
    108.     Stream stream = new MemoryStream(bytes);  
    109.     return stream;  
    110. }   
     
  • 相关阅读:
    nyoj-116-士兵杀敌(二)
    nyoj-520-最大素因子
    nyoj-333-mdd的烦恼
    nyoj-172-小珂的图表
    nyoj-332-SPY
    nyoj-49-开心的小明
    nyoj-456-邮票分你一半
    nyoj-325-zb的生日
    nyoj-372-巧克力
    vwware虚拟机无法连接外网
  • 原文地址:https://www.cnblogs.com/yelanggu/p/12625684.html
Copyright © 2011-2022 走看看