Image和Base64相互转换

1.图片转换为Base64

 /// <summary>
        /// 图片转换为base64
        /// </summary>
        /// <param name="imagefile">图片路径</param>
        /// <param name="picFomatter">图片格式(.jpg、.png等)</param>
        /// <returns></returns>
        public string GetBase64FromImage(string imagefile,string picFomatter)
        {
            string strbaser64 = "";
            try
            {
                Bitmap bmp = new Bitmap(imagefile);
                MemoryStream ms = new MemoryStream();

                ImageFormat format = ImageFormat.Jpeg;

                switch (picFomatter)
                {
                    case "png":
                        format = ImageFormat.Png;
                        break;
                    case "bmp":
                        format = ImageFormat.Bmp;
                        break;
                }

                bmp.Save(ms, format);
                byte[] arr = new byte[ms.Length];
                ms.Position = 0;
                ms.Read(arr, 0, (int)ms.Length);
                ms.Close();
                ms.Dispose();
                strbaser64 = Convert.ToBase64String(arr);
                switch (picFomatter)
                {
                    case "jpg":
                        strbaser64 = "data:image/" + picFomatter + ";base64," + strbaser64;
                        break;
                    case "jpeg":
                        strbaser64 = "data:image/" + picFomatter + ";base64," + strbaser64;
                        break;
                    case "bmp":
                        strbaser64 = "data:image/" + picFomatter + ";base64," + strbaser64;
                        break;
                    default:
                        strbaser64 = "data:image/png" + ";base64," + strbaser64;
                        break;
                }
            }
            catch (Exception)
            {
                throw new Exception("Something wrong during convert!");
            }
            return strbaser64;
        }
View Code

2.Base64转换图片

 /// <summary>
        /// Base64转换图片
        /// </summary>
        /// <param name="strbase64">base64字符串</param>
        /// <param name="picFomatter">图片格式</param>
        /// <returns></returns>
        public string Base64StringToImage(string strbase64, string picFomatter)
        {
            try
            {
                byte[] arr = Convert.FromBase64String(strbase64);
                MemoryStream ms = new MemoryStream(arr);
                Bitmap bmp = new Bitmap(ms);
                string filePath = System.AppDomain.CurrentDomain.BaseDirectory;
                ImageFormat format = ImageFormat.Jpeg;

                switch (picFomatter)
                {
                    case "png":
                        format = ImageFormat.Png;
                        break;
                    case "bmp":
                        format = ImageFormat.Bmp;
                        break;
                }
                string filename = filePath + DateTime.Now.ToFileTime().ToString() + "." + picFomatter;
                bmp.Save(filename, format);
                ms.Close();
                return filename;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
View Code
/// <summary>
        /// 判断是否Base64编码
        /// </summary>
        /// <param name="s">编码字符串</param>
        /// <returns></returns>
        public bool IsBase64(string s)
        {
            try
            {
                Convert.FromBase64String(s);
                return true;
            }
            catch (FormatException)
            {
                return false;
            }
        }
View Code
原文地址:https://www.cnblogs.com/ZJ199012/p/10476349.html