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;  
    }  
     
  • 相关阅读:
    51nod1229 序列求和 V2
    51nod 1228、1258 序列求和
    题解P3711:【仓鼠的数学题】
    伯努利数学习笔记的说...
    题解 P4692 【[Ynoi2016]谁的梦】
    积性函数与卷积
    题解 P5065 【[Ynoi2014]不归之人与望眼欲穿的人们】
    [Ynoi2018]末日时在做什么?有没有空?可以来拯救吗?
    [51nod1965]奇怪的式子
    PGCD2
  • 原文地址:https://www.cnblogs.com/zhangwei99com/p/7756291.html
Copyright © 2011-2022 走看看