1. 程式人生 > >Image和Base64相互轉換

Image和Base64相互轉換

eve hide view bitmap TBase directory Matter class current

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

Image和Base64相互轉換