jquery实现图片裁剪思路及实现


Posted in Javascript onAugust 16, 2013

思路:JS,jquery不能实现图片的裁剪,只是显示了一个假象

我的实现的方式大体如下:
1.将用户选中的图片上传到服务器
2.将选中头像的矩形框在图片上的坐标发送到服务器,包括,矩形框的宽,高,左上角的x,y坐标,图片的高,宽等
3.在服务器上用获得的各个坐标值,以及原始图片,用JAVA进行裁剪。
-----------------------------------
jquery 裁剪效果显示,利用imgAreaSelect
http://odyniec.net/projects/imgareaselect/
http://www.cnblogs.com/mizzle/archive/2011/10/13/2209891.html
效果如下:
jquery实现图片裁剪思路及实现 
JAVA实现裁剪图片
http://blog.csdn.net/renfyjava/article/details/9942743
我的例子:
我的是同时显示4个尺寸的头像,部分代码如下:

<script type="text/javascript"> 
var $thumb_width = 180; //缩略图大小 
var $thumb_height = 180; 
function preview(img, selection) { 
var scaleX = $thumb_width / selection.width; 
var scaleY = $thumb_height / selection.height; 
var scaleX2 = 100 / selection.width; 
var scaleY2 = 100 / selection.height; 
var scaleX3 = 60 / selection.width; 
var scaleY3 = 60 / selection.height; 
var scaleX4 = 30 / selection.width; 
var scaleY4 = 30 / selection.height; $('#avatar180 img').css({ 
width: Math.round(scaleX * 300) + 'px', //获取图像的实际宽度 
height: Math.round(scaleY * 300) + 'px', //获取图像的实际高度 
marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px', 
marginTop: '-' + Math.round(scaleY * selection.y1) + 'px' 
}); 
$('#avatar100 img').css({ 
width: Math.round(scaleX2 * 300) + 'px', //获取图像的实际宽度 
height: Math.round(scaleY2 * 300) + 'px', //获取图像的实际高度 
marginLeft: '-' + Math.round(scaleX2 * selection.x1) + 'px', 
marginTop: '-' + Math.round(scaleY2 * selection.y1) + 'px' 
}); 
$('#avatar60 img').css({ 
width: Math.round(scaleX3 * 300) + 'px', //获取图像的实际宽度 
height: Math.round(scaleY3 * 300) + 'px', //获取图像的实际高度 
marginLeft: '-' + Math.round(scaleX3 * selection.x1) + 'px', 
marginTop: '-' + Math.round(scaleY3 * selection.y1) + 'px' 
}); 
$('#avatar30 img').css({ 
width: Math.round(scaleX4 * 300) + 'px', //获取图像的实际宽度 
height: Math.round(scaleY4 * 300) + 'px', //获取图像的实际高度 
marginLeft: '-' + Math.round(scaleX4 * selection.x1) + 'px', 
marginTop: '-' + Math.round(scaleY4 * selection.y1) + 'px' 
}); 
$('#x1').val(selection.x1); 
$('#y1').val(selection.y1); 
$('#x2').val(selection.x2); 
$('#y2').val(selection.y2); 
$('#w').val(selection.width); 
$('#h').val(selection.height); 
} 
$(document).ready(function () { 
$('#save_thumb').click(function() { 
var x1 = $('#x1').val(); 
var y1 = $('#y1').val(); 
var x2 = $('#x2').val(); 
var y2 = $('#y2').val(); 
var w = $('#w').val(); 
var h = $('#h').val(); 
var jyduploadfile = $('#jyduploadfile').val(); 
if(x1=="" || y1=="" || x2=="" || y2=="" || w=="" || h=="" || jyduploadfile==""){ 
alert("请先选择上传图片"); 
return false; 
}else{ 
return true; 
} 
}); 
}); 
$(window).load(function () { 
$('#picView').imgAreaSelect({ selectionColor: 'blue', x1:60, y1:60, x2: 240, 
maxWidth:300,minWidth:100,y2:240,minHeight:100,maxHeight:300, 
selectionOpacity: 0.2 , aspectRatio: '1:'+($thumb_height/$thumb_width)+'', onSelectChange: preview }); 
}); 
</script>

显示效果:
jquery实现图片裁剪思路及实现
Javascript 相关文章推荐
网站页面自动跳转实现方法PHP、JSP(下)
Aug 01 Javascript
什么是cookie?js手动创建和存储cookie
May 27 Javascript
深入解读JavaScript中的Iterator和for-of循环
Jul 28 Javascript
JavaScript脚本判断蜘蛛来源的方法
Sep 22 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
Jan 14 Javascript
js+html5实现canvas绘制椭圆形图案的方法
May 21 Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
Jan 11 Javascript
基于bootstrap实现多个下拉框同时搜索功能
Jul 19 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
微信小程序实现获取小程序码和二维码java接口开发
Mar 29 Javascript
详解JavaScript的变量
Apr 04 Javascript
求数组最大最小值方法适用于任何数组
Aug 16 #Javascript
js 表单提交后按钮变灰的实例代码
Aug 16 #Javascript
JavaScript版TAB选项卡效果实例
Aug 16 #Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 #Javascript
网站404页面3秒后跳到首页的实例代码
Aug 16 #Javascript
Javascript控制页面链接在新窗口打开具体方法
Aug 16 #Javascript
动态加载script文件的两种方法
Aug 15 #Javascript
You might like
PHP写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
php实现文件下载代码分享
2014/08/19 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
python实现rsa加密实例详解
2017/07/19 Python
分析python动态规划的递归、非递归实现
2018/03/04 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
python做接口测试的必要性
2019/11/20 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
python语言是免费还是收费的?
2020/06/15 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
毕业生自荐书模版
2014/01/04 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
导游词300字
2015/02/13 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis