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 相关文章推荐
基于jquery的一行代码轻松实现拖动效果
Dec 28 Javascript
js获取IP和PcName(IE)在vs中可用
Aug 02 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
javascript中alert()与console.log()的区别
Aug 26 Javascript
[js高手之路]原型式继承与寄生式继承详解
Aug 28 Javascript
vue watch自动检测数据变化实时渲染的方法
Jan 16 Javascript
vue如何根据网站路由判断页面主题色详解
Nov 02 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
jQuery实现简单的Ajax调用功能示例
Feb 15 jQuery
Layui表格监听行单双击事件讲解
Nov 14 Javascript
swiper实现导航滚动效果
Dec 13 Javascript
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
求数组最大最小值方法适用于任何数组
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表单提交实例讲解
2015/11/12 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
php无限级分类实现方法分析
2016/10/19 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
PHP手机号码及邮箱正则表达式实例解析
2020/07/11 PHP
用jscript启动sqlserver
2007/06/21 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
javascript实现下雨效果
2017/03/27 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
python创建关联数组(字典)的方法
2015/05/04 Python
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
通过Python实现一个简单的html页面
2020/05/16 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
学生周末回家住宿长期请假条
2014/02/15 职场文书
工程承包协议书
2014/04/22 职场文书
饭店服务员岗位职责
2015/02/09 职场文书
合作与交流自我评价
2015/03/09 职场文书
铁人观后感
2015/06/16 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers
mysql查看表结构的三种方法总结
2022/07/07 MySQL