- public static class Base64Helper
- {
- /// <summary>
- /// base64字符保存图片到本
- /// </summary>
- /// <param name="filePath">保存的图片完整路径</param>
- /// <param name="base64String">base64字符串</param>
- public static void Base64SaveImage(string filePath, string base64String)
- {
- try
- {
- //如果base64是通过http传过来的,要注意其中的%、,、空格等转换,C#规定base64的长度必须是4的倍数,有个别语言是2的倍数,补上==。
- base64String = base64String.Trim().Replace("%", "").Replace(",", "").Replace(" ", "+");
- if (base64String.Length % 4 != 0)
- {
- base64String += "==";
- }
- byte[] arr2 = Convert.FromBase64String(base64String);
- using (MemoryStream ms2 = new MemoryStream(arr2))
- {
- System.Drawing.Bitmap bmp2 = new System.Drawing.Bitmap(ms2);
- bmp2.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);
- bmp2.Dispose();
- }
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog("图片保存异常:" + ex.ToString());
- }
- }
- public static string ImgToBase64String(string Imagefilename)
- {
- try
- {
- Bitmap bmp = new Bitmap(Imagefilename);
- MemoryStream ms = new MemoryStream();
- bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
- byte[] arr = new byte[ms.Length];
- ms.Position = 0;
- ms.Read(arr, 0, (int)ms.Length);
- ms.Close();
- return Convert.ToBase64String(arr);
- }
- catch (Exception ex)
- {
- LogHelper.WriteLog("图片读取异常:" + ex.ToString());
- return null;
- }
- }
- public static string ImageToBase64(string path)
- {
- byte[] bytes = GetPictureData(path);
- string base64 = Convert.ToBase64String(bytes);
- return base64;
- }
- public static Bitmap Base64ToImage(string base64)
- {
- byte[] arr = Convert.FromBase64String(base64);
- MemoryStream ms = new MemoryStream(arr);
- Bitmap bmp = new Bitmap(ms);
- ms.Close();
- return bmp;
- }
- public static byte[] GetPictureData(string imagePath)
- {
- FileStream fs = new FileStream(imagePath, FileMode.Open);
- byte[] byData = new byte[fs.Length];
- fs.Read(byData, 0, byData.Length);
- fs.Close();
- return byData;
- }
- }