
/// <summary> /// 上傳圖片 /// </summary> /// <param name="dataURL">base64圖片編碼</param> /// <returns></returns> [HttpPost] public string Image(parameter parameter) { #region //string filename = "";//聲明一個string類型的相對路徑 //String base64 = parameter.dataURL.Substring(parameter.dataURL.IndexOf(",") + 1); //將‘,’以前的多余字符串刪除 ////System.Drawing.Bitmap bitmap = null;//定義一個Bitmap對象,接收轉換完成的圖片 //try//會有異常拋出,try,catch一下 //{ // String inputStr = base64;//把純凈的Base64資源扔給inpuStr,這一步有點多余 // byte[] arr = Convert.FromBase64String(inputStr);//將純凈資源Base64轉換成等效的8位無符號整形數組 // System.IO.MemoryStream ms = new System.IO.MemoryStream(arr);//轉換成無法調整大小的MemoryStream對象 // System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);//將MemoryStream對象轉換成Bitmap對象 // //bitmap = bmp; // string getPath = System.Web.HttpContext.Current.Server.MapPath("~/Res/FaceImages/"); // if (!Directory.Exists(getPath)) // Directory.CreateDirectory(getPath); // Random random = new Random(); // int n = random.Next(10000, 100000); // //文件名稱 我用的時間+名稱處理 一般會增加一個隨機數 // filename = "/Res/FaceImages/" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Millisecond + n.ToString() + ".png";//所要保存的相對路徑及名字 // string tmpRootDir = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString()); //獲取程序根目錄 // string imagesurl2 = tmpRootDir + filename.Replace(@"/", @"\"); //轉換成絕對路徑 // bmp.Save(imagesurl2, System.Drawing.Imaging.ImageFormat.Png);//保存到服務器路徑 // ms.Close();//關閉當前流,並釋放所有與之關聯的資源 //} //catch (Exception) //{ //} //return filename;//返回相對路徑 #endregion string filename = "";//聲明一個string類型的相對路徑 String base64 = parameter.dataURL.Substring(parameter.dataURL.IndexOf(",") + 1); //將‘,’以前的多余字符串刪除 try//會有異常拋出,try,catch一下 { String inputStr = base64;//把純凈的Base64資源扔給inpuStr,這一步有點多余 byte[] arr = Convert.FromBase64String(inputStr);//將純凈資源Base64轉換成等效的8位無符號整形數組 using (MemoryStream memory = new MemoryStream(arr)) { using (System.Drawing.Image image = System.Drawing.Image.FromStream(memory)) { using (System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(image, image.Width, image.Height))//將MemoryStream對象轉換成Bitmap對象 { //縮放圖片 Bitmap bitmap = ZoomImage(bmp, 480, 480); //去掉圖片白邊 Bitmap bit = CutImageWhitePart(bitmap); string getPath = System.Web.HttpContext.Current.Server.MapPath("~/Res/FaceImages/"); if (!Directory.Exists(getPath)) Directory.CreateDirectory(getPath); Random random = new Random(); int n = random.Next(10000, 100000); //文件名稱 我用的時間+名稱處理 一般會增加一個隨機數 filename = "/Res/FaceImages/" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Millisecond + n.ToString() + ".png";//所要保存的相對路徑及名字 string tmpRootDir = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString()); //獲取程序根目錄 string imagesurl2 = tmpRootDir + filename.Replace(@"/", @"\"); //轉換成絕對路徑 bit.Save(imagesurl2, System.Drawing.Imaging.ImageFormat.Png);//保存到服務器路徑 bmp.Dispose(); bitmap.Dispose(); bit.Dispose(); image.Dispose(); memory.Close();//關閉當前流,並釋放所有與之關聯的資源 } } } } catch (Exception) { } return ConfigurationManager.ConnectionStrings["imgUrl"].ToString() + filename;//返回相對路徑