.net MVC 加水印 缩略图 上传图片

 [HttpPost]
        public ActionResult Upload(HttpPostedFileBase file)
        {
            JsonResult jrResult = new JsonResult();
            if (file == null)
            {
                jrResult.Data = new { success = false, errors = "没有文件!" };
                return jrResult;
            }
            //获取文件大小
            int fileSize = (int)(file.InputStream.Length)/1024;//求出图片有多少kb
            var fdf = file.ContentLength;
            if (fileSize>(int)(1 * 10)) {
                var errorsf = "图片太大";
            }
            //获取图片宽和高
            System.Drawing.Image image = System.Drawing.Image.FromStream(file.InputStream);
            int width = image.Width-10;
            int height = image.Height-10;
           


            var type = file.InputStream.GetType();
            var ZFileName = Guid.NewGuid().ToString("N") + file.FileName;
            string FileType = Path.GetExtension(file.FileName).ToLower();
            //获取文件类型
            if (FileType != ".jpg" && FileType != ".gif") {
                jrResult.Data = new { result = false, errors = "图片格式不对!" };
                var errors = "图片格式不对!";
                //return jrResult;
            }
            //缩略图
            Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb);
            Graphics g = Graphics.FromImage(bitmap);
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量插值法
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
            g.Clear(Color.Transparent); //清空画布并以透明背景色填充
            g.DrawImage(image, new Rectangle(0, 0, width, height), new Rectangle(0, 0, width, height), GraphicsUnit.Pixel);
            g.DrawString("传智播客", new Font("黑体", 14.0f, FontStyle.Bold), Brushes.Red, new PointF(150, 200));


            string upfilepath2 = "~/Upload/min_" + ZFileName; //缩略图为原图后缀增加_m用于区分
            var upfilepathee= Path.Combine(Request.MapPath("/Upload"), Path.GetFileName(upfilepath2));
            string oFullName = Server.MapPath(ZFileName);
            string tFullName = Server.MapPath(upfilepath2);


            //判断文件夹是否存在
            string directoryPath = Server.MapPath("~/Upload");
            if (!Directory.Exists(directoryPath)) {
                Directory.CreateDirectory(Server.MapPath("~/Upload/"));
            }
            var fileName = Path.Combine(Request.MapPath("/Upload"), Path.GetFileName(ZFileName));
            try
            {
                bitmap.Save(tFullName);
                file.SaveAs(fileName);
                fileName = "/Upload/" + Path.GetFileName(ZFileName);


                string s = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ImgPath"].ToString() + fileName;
                jrResult.Data = new { result = true, Img = s };
                return jrResult;
            }
            catch
            {
                jrResult.Data = new { result = false, errors = "上传失败!" };
                return jrResult;
            }
        }

你可能感兴趣的:(c#)