zoukankan      html  css  js  c++  java
  • byte,bitmap,image互转

    /// <summary>         

    /// 将图片Image转换成Byte[]         

    /// </summary>         

    /// <param name="Image">image对象</param>         

    /// <param name="imageFormat">后缀名</param>         

    /// <returns></returns>         

    public static byte[] ImageToBytes(Image Image, System.Drawing.Imaging.ImageFormat imageFormat)         

    {

      if (Image == null) { return null; }

      byte[] data = null;

      using (MemoryStream ms= new MemoryStream())             

      {

            using (Bitmap Bitmap = new Bitmap(Image))                 

        {

                        Bitmap.Save(ms, imageFormat);

                        ms.Position = 0;

                        data = new byte[ms.Length];

                        ms.Read(data, 0, Convert.ToInt32(ms.Length));

                        ms.Flush();

               }

      }

                return data;

    }

     

     

    /// <summary>             

    /// byte[]转换成Image             

    /// </summary>            

    /// <param name="byteArrayIn">二进制图片流</param>             

    /// <returns>Image</returns>             

    public static System.Drawing.Image byteArrayToImage(byte[] byteArrayIn)             

    {                 

      if (byteArrayIn == null)                     

      return null;                 

      using (System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArrayIn))                 

      {                     

        System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);                     

        ms.Flush();                     

        return returnImage;                 

      }             

    }

     //Image转换Bitmap

       1. Bitmap img = new Bitmap(imgSelect.Image);

       2. Bitmap bmp = (Bitmap)pictureBox1.Image;

     

    //Bitmap转换成Image

    using System.IO;

    private static System.Windows.Controls.Image Bitmap2Image(System.Drawing.Bitmap Bi)         

    {                        

      MemoryStream ms = new MemoryStream();             

      Bi.Save(ms, System.Drawing.Imaging.ImageFormat.Png);             

      BitmapImage bImage = new BitmapImage();             

      bImage.BeginInit();             

      bImage.StreamSource = new MemoryStream(ms.ToArray());             

      bImage.EndInit();             

      ms.Dispose();             

      Bi.Dispose();             

      System.Windows.Controls.Image i = new System.Windows.Controls.Image();            

      i.Source = bImage;             

      return i ;         

    }

     

    //byte[] 转换 Bitmap  

    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();              

      }          

    }    

    //Bitmap转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();              

      }          

      }      

  • 相关阅读:
    python爬取动态网页数据,详解
    几行代码轻松搞定python的sqlite3的存取
    14、Iterator跟ListIterator的区别
    13、Java菜单条、菜单、菜单项
    12、借助Jacob实现Java打印报表(Excel、Word)
    11、借助POI实现Java生成并打印excel报表(2)
    10、借助POI实现Java生成并打印excel报表(1)
    9、JcomboBox下拉框事件监听
    8、单选按钮(JRadioButton)和复选框(JCheckBox)
    java swing 添加 jcheckbox复选框
  • 原文地址:https://www.cnblogs.com/xietianjiao/p/5646315.html
Copyright © 2011-2022 走看看