首先要獲取到Base64數據
//imgData為Base64數據 if (imgData != "" && imgData != null) { //這里是關鍵 m 獲取的是當前運行項目的路徑, string m = System.AppDomain.CurrentDomain.BaseDirectory; //調用方法傳入要存放的路徑和Base64圖片數據 imgData = Base64StringToImage(m + @"images\AlarmPicture\", imgData); } else { imgData = ""; }
下面是進行轉換和保存到本地的方法
/// <summary> /// 將Base64圖片轉為圖片保存到本地 /// </summary> /// <param name="strImagePath"></param> /// <param name="strBase64Image"></param> /// <returns></returns> public static string Base64StringToImage(string strImagePath, string strBase64Image) { string jpgName = string.Empty; TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); //這里是將圖片按時間戳進行重命名,並加上文件格式 jpgName = Convert.ToInt64(ts.TotalSeconds).ToString() + ".jpg"; //有的base64數據傳過來的前綴是文件的名稱,可以使用此方法去除掉 //string[] img_array = strBase64Image.Split(','); byte[] arr = Convert.FromBase64String(strBase64Image); string jpgPathName = strImagePath + jpgName; //byte[] arr = Convert.FromBase64String(strBase64Image); MemoryStream ms = new MemoryStream(arr); System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms); bmp.Save(jpgPathName, System.Drawing.Imaging.ImageFormat.Jpeg); //bmp.Save(jpgPathName, System.Drawing.Imaging.ImageFormat.Bmp); //bmp.Save(txtFileName + ".gif", ImageFormat.Gif); //bmp.Save(txtFileName + ".png", ImageFormat.Png); ms.Close(); return jpgPathName; }