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 相关文章推荐
JavaScript 高级语法介绍
Jun 15 Javascript
Javascript 事件流和事件绑定
Jul 16 Javascript
深入document.write()与HTML4.01的非成对标签的详解
May 08 Javascript
基于Javascript实现二级联动菜单效果
Mar 04 Javascript
JS遍历对象属性的方法示例
Jan 10 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
jquery中封装函数传递当前元素的方法示例
May 05 jQuery
简单实现js放大镜效果
Jul 24 Javascript
js制作简单的音乐播放器的示例代码
Aug 28 Javascript
简单实现vue验证码60秒倒计时功能
Oct 11 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
Aug 07 Javascript
js canvas实现画图、滤镜效果
Nov 27 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
PHP 第二节 数据类型之转换
2012/04/28 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
Zend Framework连接Mysql数据库实例分析
2016/03/19 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
跟老齐学Python之??碌某?? target=
2014/09/12 Python
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
Python图算法实例分析
2016/08/13 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
CSS3贝塞尔曲线示例:创建链接悬停动画效果
2020/11/19 HTML / CSS
法国家具及室内配件店:home24
2017/01/21 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
职称自我鉴定
2013/10/15 职场文书
银行实习生的自我评价
2013/12/09 职场文书
家长给小学生的评语
2014/01/30 职场文书
优秀员工评优方案
2014/06/13 职场文书
超市创意活动方案
2014/08/15 职场文书
公证委托书格式
2014/09/13 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
怒海潜将观后感
2015/06/11 职场文书
安全教育主题班会总结
2015/08/14 职场文书