croppic 图片裁剪
#region 3.1.3 保存裁剪后的图片方法 +ContentResult TemplateCropImg()
/// <summary>
/// 保存裁剪后的图片方法
/// </summary>
/// <returns></returns>
[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
croppic 图片裁剪的更多相关文章
- Croppic – 免费开源的 jQuery 图片裁剪插件
Croppic 这款开源的 jQuery 图片裁剪插件能够满足网站开发人员各种不同的使用需要.只需要简单的上传图片,就可以实现你想要的图像缩放和裁剪功能.因为使用了 HTML5 FormData 对 ...
- 5 款最新的 jQuery 图片裁剪插件
这篇文章主要介绍最新的 5 款 jQuery 图片裁剪插件,可以帮助你轻松的实现你网站需要的图像裁剪功能. Cropit Cropit 是一个 jQuery 插件,支持图像裁剪和缩放功能.Cropit ...
- iOS常见用户头像的圆形图片裁剪常见的几种方法
在开发中,基本上APP的用户头像的处理都需要把用户所上传的方形图片,处理为圆形图片.在这里就总结三种常见的处理圆形图片的方法. 1.使用位图上下文 2.使用UIView的layer进行处理 3.使用r ...
- Cropper – 简单的 jQuery 图片裁剪插件
Cropper 是一个简单的 jQuery 图像裁剪插件.它支持选项,方法,事件,触摸(移动),缩放,旋转.输出的裁剪数据基于原始图像大小,这样你就可以用它们来直接裁剪图像. 如果你尝试裁剪跨域图像, ...
- 自己积累的一些Emgu CV代码(主要有图片格式转换,图片裁剪,图片翻转,图片旋转和图片平移等功能)
using System; using System.Drawing; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; na ...
- web开发实战--图片裁剪和上传
前言: 最近的开发中, 有一个上传头像的任务. 由于头像本身的特殊性, 其一般流程为选择图片, 编辑裁剪区域, 再继而上传图片操作. 看似简单的东西, 实则是挺麻烦的一件事. 借助这次开发机会, 来具 ...
- PHP图片裁剪_图片缩放_PHP生成缩略图
在制作网页过程中,为了排版整齐美观,对网页中的图片处理成固定大小尺寸的图片,或是要截去图片边角中含有水印的图片,对于图片量多,每天更新大量图,靠人工PS处理是不现实的,那么有没有自动处理图片的程序了! ...
- Android大图片裁剪终极解决方案(上:原理分析)
转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-) http://my.oschina.net/ryanhoo/blog/86842 约几个月前,我正 ...
- apiCloud中图片裁剪模块FNImageClip的使用
思路 1.获取需裁剪图片的地址 2.跳转到裁剪页面 3.裁剪成功返回新图片地址 4.替换原有图片地址 增加修饰和事件 str += '<li class="tu image" ...
随机推荐
- [iOS基础控件 - 5.1] UIScrollView
A.需要掌握 UIScrollView 是一个能够滚动的视图控件,可以用来展示大量内容,如手机的“设置” 1.常见属性 2.常用代理方法 3.缩放 4.UIScrollView和UIPageContr ...
- ACM_基础知识
1. PI值的定义 const double PI = acos(-1.0); 2. system("pause")就是调用从程序中调用系统命令,而"pause" ...
- Oracle10g完全卸载正确步骤
Oracle卸载要求比较严格,不能简单的卸载就完事了:当然Oracle卸载也没有那么难,只是步骤比较多.Oracle10g还是Oracle11g卸载步骤都是一样的.下边详细介绍一下. 找到Oracle ...
- 传统XmlDocument操作
需要引用的命名空间: using System.Xml; 常用的类:XmlDocument.XmlElement.XmlNode.XmlNodeList 一.使用XmlDocument创建xml // ...
- ELK beats通用配置说明(12th)
Beats配置文件是以YAML语法,该文件包含用于所有的beats的通用配置选项,以及其特点的选项.下面说说通用的配置,特定的配置要看各自beat文档. 通用的配置如下几部分: Shipper Out ...
- Swif基本语法以及与OC比较三
(未 经 博 主 同 意,不 得 转 载 !) ------------------------华丽分割线----------------------- // // main.swift ...
- MVC4网站发布到windows server 2003服务器
在windows server 2003上部署MVC4的网站,需要进行以下工作 用VS2013新建项目 在创建项目的时候选择的矿建为.NET Framework4,然后选择[ASP.NET MVC4 ...
- Codeforces Round #324 (Div. 2) D. Dima and Lisa 哥德巴赫猜想
D. Dima and Lisa Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/584/probl ...
- 飘逸的python - 使用dis模块进行代码层次的性能剖析
http://blog.csdn.net/handsomekang/article/details/41479597?utm_source=tuicool&utm_medium=referra ...
- 未打开Ad Hoc Distributed Queries
SSAS访问ORACLE数据仓库读取数据创建CUBE的时候报如下错误: SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'Open ...