博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
croppic 图片裁剪
阅读量:5173 次
发布时间:2019-06-13

本文共 3009 字,大约阅读时间需要 10 分钟。

#region 3.1.3 保存裁剪后的图片方法 +ContentResult TemplateCropImg()        ///         /// 保存裁剪后的图片方法        ///         /// 
[HttpPost] public ContentResult TemplateCropImg() { string imageUrl = Request.Form["imgUrl"]; //要剪裁图片的地址 int imageWidth = Convert.ToInt32(Request.Form["imgInitW"]); //原图宽度 int imageHeight = Convert.ToInt32(Request.Form["imgInitH"]); //原图高度 int imageW = Convert.ToInt32(Math.Round(Convert.ToDouble(Request.Form["imgW"]))); //缩放后宽度 int imageH = Convert.ToInt32(Math.Round(Convert.ToDouble(Request.Form["imgH"]))); //缩放后高度 int cropWidth = Convert.ToInt32(Request.Form["cropW"]); //剪裁宽度 int cropHeight = Convert.ToInt32(Request.Form["cropH"]); //剪裁高度 int x = Convert.ToInt32(Request.Form["imgX1"]); //剪裁时X坐标 int y = Convert.ToInt32(Request.Form["imgY1"]); //剪裁时Y坐标 string returnData = string.Empty; //原始图片 using (Image image = Image.FromFile(Server.MapPath(imageUrl))) { //将图片缩放 Bitmap bitmap = new Bitmap(imageW, imageH); Graphics graph = Graphics.FromImage(bitmap); //设置画布的描绘质量 graph.CompositingQuality = CompositingQuality.HighQuality; graph.SmoothingMode = SmoothingMode.HighQuality; graph.InterpolationMode = InterpolationMode.HighQualityBicubic; graph.DrawImage(image, new Rectangle(0, 0, imageW, imageH), new Rectangle(0, 0, imageWidth, imageHeight), GraphicsUnit.Pixel); MemoryStream memoryStream = new MemoryStream(); bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp); //缩放后的图片 Image zoomImage = Image.FromStream(memoryStream); //将缩放后的图片进行裁剪 bitmap = new Bitmap(cropWidth, cropHeight); graph = Graphics.FromImage(bitmap); //清空画布并以透明背景色填充 graph.Clear(Color.Transparent); graph.DrawImage(zoomImage, 0, 0, new Rectangle(x, y, cropWidth, cropHeight), GraphicsUnit.Pixel); //得到裁剪后的图片 string filePath = System.Configuration.ConfigurationManager.AppSettings["UploadDir"] + DateTime.Now.ToString("yyyyMMdd") + "/"; if (!Directory.Exists(Server.MapPath(filePath))) { Directory.CreateDirectory(Server.MapPath(filePath)); } string fileName = filePath + DateTime.Now.Ticks + ".png"; bitmap.Save(Server.MapPath(fileName), System.Drawing.Imaging.ImageFormat.Png); graph.Dispose(); bitmap.Dispose(); returnData = "{'status':'success','url':'" + fileName + "'}"; } //删除之前上传的图片 System.IO.File.Delete(Server.MapPath(imageUrl)); return Content(returnData); } #endregion

  

转载于:https://www.cnblogs.com/BigeTouch/p/5127511.html

你可能感兴趣的文章
Ubuntu 基本操作
查看>>
JAVA数组的定义及用法
查看>>
18寒假第七测
查看>>
帧中继
查看>>
105:MyBatis常见实用面试题整理
查看>>
Base on QC Automation Framework v1.0
查看>>
bzoj 3261: 最大异或和 (可持久化trie树)
查看>>
UVA 11440 Help Tomisu
查看>>
bzoj千题计划258:bzoj3123: [Sdoi2013]森林
查看>>
开博@纪念
查看>>
linux的正则表达式
查看>>
Android 中EditText 与Keyboard 引起的UI bug
查看>>
20162316刘诚昊 2016-2017-2《程序设计与数据结构》课程总结
查看>>
代理模式---动态代理之JDK
查看>>
POJ 1182 食物链
查看>>
python xml解析和生成
查看>>
MySQL MGR集群搭建
查看>>
吴恩达深度学习笔记 cousrse4 week1作业
查看>>
程序员前辈走过的路
查看>>
UBUNTU 10.04 更新源 补充
查看>>