• c# Byte[]、Image、Bitmap 之间的相互转换


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

    转自:http://www.zhuzhusoft.com/article.php?

    id=205

  • 相关阅读:
    Spring整合JMS(一)——基于ActiveMQ实现 (转)
    spring mvc入门配置
    Java enum的用法详解 (转)
    php学习日记7(关于“ javascript : ; ”的意思)
    php学习日记6(关于php中json_decode和json_encode的区别)
    php学习日记5(关于php中getCacheAll()方法的使用)
    php学习日记4(关于php中的$this->assign(); 与 $this->display();)
    php学习日记3(关于Mysql中limit用法)
    php学习日记2(关于php中的符号->、=>和::的意思)
    php学习日记1(关于Thinkphp框架中D的含义和用法)
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7085106.html
Copyright © 2020-2023  润新知