/// <summary>
        ///     图片转为base64编码字符
        /// </summary>
        /// <param name="path">图片路径</param>
        /// <param name="format">图片格式</param>
        /// <returns>base64编码字符</returns>
        public static string ImgToBase64(string path, ImageFormat format)
        {
            try
            {
                var bmp = new Bitmap(path);
                var ms = new MemoryStream();
                bmp.Save(ms, format);
                var arr = new byte[ms.Length];
                ms.Position = 0;
                ms.Read(arr, 0, (int)ms.Length);
                ms.Close();
                return Convert.ToBase64String(arr);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        /// <summary>
        ///     图片转为base64编码字符
        /// </summary>
        /// <param name="bytes">图片二进制数据</param>
        public static string ImgToBase64(byte[] bytes)
        {
            if (bytes == null)
            {
                return "";
            }

            try
            {
                return Convert.ToBase64String(bytes);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        /// <summary>
        ///     图片转为base64编码字符
        /// </summary>
        /// <param name="img">Image图片</param>
        /// <returns>base64字符串</returns>
        public static string ImgToBase64(Image img)
        {
            try
            {
                var bts = BitmapToBytes(img);
                return ImgToBase64(bts);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        /// <summary>
        ///     image转byte[]
        /// </summary>
        /// <param name="image">image</param>
        /// <returns>byte[]</returns>
        public static byte[] ImageToBytes(Image image)
        {
            var format = image.RawFormat;
            using (var ms = new MemoryStream())
            {
                if (format.Equals(ImageFormat.Jpeg))
                {
                    image.Save(ms, ImageFormat.Jpeg);
                }
                else if (format.Equals(ImageFormat.Png))
                {
                    image.Save(ms, ImageFormat.Png);
                }
                else if (format.Equals(ImageFormat.Bmp))
                {
                    image.Save(ms, ImageFormat.Bmp);
                }
                else if (format.Equals(ImageFormat.Gif))
                {
                    image.Save(ms, ImageFormat.Gif);
                }
                else if (format.Equals(ImageFormat.Icon))
                {
                    image.Save(ms, ImageFormat.Icon);
                }
                else
                {
                    image.Save(ms, ImageFormat.Jpeg);
                }
                var buffer = new byte[ms.Length];
                //Image.Save()会改变MemoryStream的Position,需要重新Seek到Begin
                ms.Seek(0, SeekOrigin.Begin);
                ms.Read(buffer, 0, buffer.Length);
                return buffer;
            }
        }


        /// <summary>
        ///     base64编码的文本转为图片
        /// </summary>
        /// <param name="bstring">base64编码图片</param>
        /// <returns>图片</returns>
        public static Bitmap Base64ToImage(string bstring)
        {
            try
            {
                if (string.IsNullOrEmpty(bstring)) return null;
                var arr = Convert.FromBase64String(bstring);
                var ms = new MemoryStream(arr);
                var bmp = new Bitmap(Image.FromStream(ms));
                ms.Close();
                return bmp;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

        /// <summary>
        /// 图片转byte[]
        /// </summary>
        /// <param name="image"></param>
        /// <returns></returns>
        public static byte[] BitmapToBytes(Image image)
        {

            MemoryStream ms = new MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp);
            byte[] bytes = ms.GetBuffer();  //byte[]   bytes=   ms.ToArray(); 这两句都可以,至于区别么,下面有解释
            ms.Close();
            return bytes;
        }


        /// <summary>
        ///读取byte[]并转化为图片
        /// </summary>
        /// <param name="bytes">byte[]</param>
        /// <returns>Image</returns>
        public static Image GetImageByBytes(byte[] bytes)
        {
            Image photo = null;
            using (var ms = new MemoryStream(bytes))
            {
                ms.Write(bytes, 0, bytes.Length);
                photo = Image.FromStream(ms, true);
            }
            return photo;
        }

 

        /// 图片url链接转化为图片
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static Bitmap GetURLImage(string url)
        {
            if (string.IsNullOrEmpty(url))
            {
                return null;
            }

            try
            {
                System.Net.WebRequest webreq = System.Net.WebRequest.Create(url);
                System.Net.WebResponse webres = webreq.GetResponse();
                using (System.IO.Stream stream = webres.GetResponseStream())
                {
                    Bitmap tmpImg = new Bitmap(stream);
                    var img = new Bitmap(tmpImg);
                    stream.Close();
                    return img;
                }
            }
            catch (Exception ex)
            {
                //LogHelper.WriteErrorLog(typeof(ImageHelper), ex);
                return null;
            }

        }
        /// <summary>
        /// 图片url链接转化为字节
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static byte[] GetURLImageBytes(string url)
        {
            byte[] img = null;
            try
            {
                System.Net.WebRequest webreq = System.Net.WebRequest.Create(url);
                System.Net.WebResponse webres = webreq.GetResponse();
                using (System.IO.Stream stream = webres.GetResponseStream())
                {
                    using (System.IO.MemoryStream mStream = new MemoryStream())
                    {
                        stream.CopyTo(mStream);
                        img = mStream.GetBuffer();
                        stream.Close();
                        mStream.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                //LogHelper.WriteErrorLog(typeof(ImageHelper), ex);
            }
            return img;
        }