zoukankan      html  css  js  c++  java
  • C# Base64格式图片上传

             /// <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;//返回相对路径
    View Code
  • 相关阅读:
    Rainmeter 雨滴桌面 主题分享
    行人检測之HOG特征(Histograms of Oriented Gradients)
    const和readonly差别
    ADB命令解析
    Java实现 蓝桥杯VIP 算法训练 接水问题
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
  • 原文地址:https://www.cnblogs.com/s666/p/13581223.html
Copyright © 2011-2022 走看看