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中匿名函数,函数直接量和闭包
May 08 Javascript
js 得到文件后缀(通过正则实现)
Jul 08 Javascript
JQuery实现倒计时按钮具体方法
Nov 14 Javascript
js实现表格字段排序
Feb 19 Javascript
浅谈类似于(function(){}).call()的js语句
Mar 30 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
Nov 24 Javascript
javascript实现的猜数小游戏完整实例代码
May 10 Javascript
setTimeout学习小结
Feb 08 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
Jun 01 Javascript
vue的状态管理模式vuex
Nov 30 Javascript
js实现左右两侧浮动广告
Jul 09 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执行速度全攻略(上)
2006/10/09 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
php简单统计在线人数的方法
2016/05/10 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
jquery的键盘事件修改代码
2011/02/24 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
JS实现简单拖拽效果
2017/06/21 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
create-react-app修改为多页面支持的方法
2018/05/17 Javascript
js实现随机数小游戏
2019/06/28 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Python返回数组/List长度的实例
2018/06/23 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python通过实例讲解反射机制
2019/10/17 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
解决pytorch-yolov3 train 报错的问题
2020/02/18 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
银行实习自我鉴定
2013/10/12 职场文书
学校后勤人员职责
2013/12/27 职场文书
同学会邀请书大全
2014/01/12 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
《最后的姿势》教学反思
2014/02/27 职场文书
关爱残疾人标语
2014/06/25 职场文书
《给予树》教学反思
2016/03/03 职场文书
Python内置的数据类型及使用方法
2022/04/13 Python