• 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;  
    }  
  • 相关阅读:
    数学--数论--HDU 2136(素数筛选法)
    思维+模拟--POJ 1013 Counterfeit Dollar
    数学--数论--莫比乌斯函数
    事半功倍和事倍功半
    一道阿里面试题
    文本分类学习(三) 特征权重(TF/IDF)和特征提取
    汉字字典树
    文本分类学习(二)文本表示
    文本分类学习(一):开篇
    一道网易面试编程题
  • 原文地址:https://www.cnblogs.com/testsec/p/6095626.html
Copyright © 2020-2023  润新知