Image和Base64相互轉換
阿新 • • 發佈:2019-03-05
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(stringView Codeimagefile,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; }
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相互轉換