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 相关文章推荐
AngularJS入门教程之学习环境搭建
Dec 06 Javascript
jQuery中html()方法用法实例
Dec 25 Javascript
瀑布流的实现方式(原生js+jquery+css3)
Jun 28 Javascript
微信小程序入门教程
Nov 18 Javascript
Javascript中常用类型的格式化方法小结
Dec 26 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
Jun 01 Javascript
浅谈Webpack自动化构建实践指南
Dec 18 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
Jan 31 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
解决layui的radio属性或别的属性没显示出来的问题
Sep 26 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 Javascript
JS写滑稽笑脸运动效果
May 28 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实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
Mootools 1.2教程 排序类和方法简介
2009/09/15 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
vuejs移动端实现div拖拽移动
2019/07/25 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
python生成器推导式用法简单示例
2019/10/08 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
期末学生评语大全
2014/04/24 职场文书
企业承诺书格式范文
2015/04/28 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
董事长开业致辞
2015/07/29 职场文书
变长双向rnn的正确使用姿势教学
2021/05/31 Python