配合 jquery.Jcrop 实现上传图片进行剪裁保存功能

  
    <script src="js/jquery.min.js"></script>
<script src="js/jquery.Jcrop.js"></script>
<link rel="stylesheet" href="css/jquery.Jcrop.css" type="text/css" />
<script type="text/javascript">
jQuery(function ($) {
//target是<img>的id
jQuery('#target').Jcrop({
onChange: showCoords,
onSelect: showCoords
});
}); function showCoords(c) {
jQuery('#x').val(c.x); //x起点坐标
jQuery('#y').val(c.y);
jQuery('#x2').val(c.x2);//x终点坐标
jQuery('#y2').val(c.y2);
jQuery('#w').val(c.w);
jQuery('#h').val(c.h);
};
</script>


后台代码
        /// <summary>
/// 剪裁图像
/// </summary>
/// <param name="Img">原图物理地址</param>
/// <param name="Width">新图宽度</param>
/// <param name="Height">新图高度</param>
/// <param name="X">绘制起点X轴</param>
/// <param name="Y">绘制起点Y轴</param>
/// <returns></returns>
private byte[] Crop(string Img, int Width, int Height, int X, int Y)
{
try
{
using (var OriginalImage = new Bitmap(Img))
{
using (var bmp = new Bitmap(Width, Height, OriginalImage.PixelFormat))
{
bmp.SetResolution(OriginalImage.HorizontalResolution, OriginalImage.VerticalResolution);
using (Graphics Graphic = Graphics.FromImage(bmp))
{
Graphic.SmoothingMode = SmoothingMode.AntiAlias;//设置高质量,低速度呈现平滑程度
Graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;//设置高质量插值法
Graphic.Clear(Color.Transparent);//清空画布并以透明背景色填充
Graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
Graphic.DrawImage(OriginalImage, new Rectangle(0, 0, Width, Height), X, Y, Width, Height,
GraphicsUnit.Pixel);
方法一
bmp.Save(Server.MapPath("上传裁剪") + "new.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);//图片另存
方法二 //转换二进制流
var ms = new MemoryStream();
bmp.Save(ms, OriginalImage.RawFormat); return ms.GetBuffer();
}
}
}
}
catch (Exception Ex)
{
throw (Ex);
}
}

最新文章

  1. ubuntu使用doxygen
  2. Emacs下的中文输入
  3. Entity Framework 5.0系列之自动生成Code First代码
  4. VSFTPD配置TLS/SSL
  5. 数据库中已存在名为 &#39;View_Business&#39; 的对象。
  6. html的下拉框的几个基本使用方法
  7. 概率图模型之有向图与无向图之间的关系 I map D map perfect map(完美图) 概念
  8. C指针笔记
  9. Entity Framework性能优化
  10. BZOJ1612: [Usaco2008 Jan]Cow Contest奶牛的比赛
  11. CSRF——攻击与防御
  12. [Zookeeper研究]一 Zookeeper技术简介
  13. Spring之SpringMVC的Controller(源码)分析
  14. tableView区头不显示
  15. Python输入一个数字打印等腰三角形
  16. How to build ffmpeg with hardware accelerated codecs for Android x86
  17. 需求规格说明书(SRS)特点
  18. [ipsec][crypto] 在IPSec ESP使用AES-GCM加密时的IV
  19. 本学期c#学习总结
  20. UCML 参与者关键 与依赖关联外键

热门文章

  1. BZOJ 4817 [SDOI2017]树点涂色 (LCT+线段树维护dfs序)
  2. Git 合并流程
  3. Map的四种遍历方法
  4. Maven系列--web.xml 配置详解
  5. 高级函数-sign
  6. Action访问ServletAPI的三种方式
  7. POJ 3695
  8. 仿hibernate,spring框架手动写
  9. Hibernate的多种关系映射(oto、otm、mtm)
  10. JAVA设计模式之【职责链模式】