zoukankan      html  css  js  c++  java
  • Byte[]、Image、Bitmap 之间的相互转换

            //Image转换Bitmap
            //1. Bitmap img = new Bitmap(imgSelect.Image);
            //2. Bitmap bmp = (Bitmap)pictureBox1.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;
                }
            }
    
            /// <summary>
            /// byte[] 转换 Bitmap
            /// </summary>
            /// <param name="Bytes">byte[]</param>
            /// <returns></returns>
            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();
                }
            }
    
            /// <summary>
            /// Bitmap转byte[]  
            /// </summary>
            /// <param name="Bitmap">Bitmap</param>
            /// <returns></returns>
            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();
                }
            }

  • 相关阅读:
    演示一个简单的Redis队列
    Quartz.net 基于配置的调度程序实践
    阿里云OSS分片上传DEMO
    java基础 -- 关键字static的用法
    java基础 -- 关键字final的用法
    Linux中安装软件和各种常用命令
    python获取网页信息的三种方法
    jquery中获取ajax请求返回数据的方法
    Jquery为动态添加的元素添加事件
    js中时间戳转换成xxxx-xx-xx xx:xx:xx类型日期格式的做法
  • 原文地址:https://www.cnblogs.com/smartsmile/p/6234205.html
Copyright © 2011-2022 走看看