zoukankan      html  css  js  c++  java
  • 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;  
    }  
  • 相关阅读:
    别让安全问题拖慢了 DevOps!
    精华阅读第 9 期 |滴滴出行 iOS 客户端架构演进之路
    微信小程序组件化开发框架WePY
    Web前端鼠标悬停实现显示与隐藏效果
    Web前端社交账号注册按钮
    微信小游戏2
    微信小游戏
    (2)
    Angular实战项目(1)
    一步HTML5教程学会体系
  • 原文地址:https://www.cnblogs.com/testsec/p/6095626.html
Copyright © 2011-2022 走看看