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 相关文章推荐
jscript之Read an Excel Spreadsheet
Jun 13 Javascript
Javascript打印网页部分内容的脚本
Nov 17 Javascript
jquery CSS选择器笔记
Mar 29 Javascript
图片在浏览器中底部对齐 解决方法之一
Nov 30 Javascript
javascript结合ajax读取txt文件内容
Dec 05 Javascript
JS实现的页面自定义滚动条效果
Oct 26 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
Node.JS文件系统解析实例详解
May 15 Javascript
JS switch判断 三目运算 while 及 属性操作代码
Sep 03 Javascript
Angular实现预加载延迟模块的示例
Oct 12 Javascript
vue2中引用及使用 better-scroll的方法详解
Nov 15 Javascript
vue实现计步器功能
Nov 01 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中利用XML技术构造远程服务(下)
2006/10/09 PHP
PHP读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
php之readdir函数用法实例
2014/11/13 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
javascript性能优化之事件委托实例详解
2015/12/12 Javascript
javascript中href和replace的比较(详解)
2016/11/25 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
python自然语言编码转换模块codecs介绍
2015/04/08 Python
探究Python中isalnum()方法的使用
2015/05/18 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python入门_条件控制(详解)
2017/05/16 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Python 监测文件是否更新的方法
2019/06/10 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
python实现在线翻译功能
2020/03/03 Python
Python第三方库安装缓慢的解决方法
2021/02/06 Python
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
Java编程面试题
2016/04/04 面试题
钱学森电影观后感
2015/06/04 职场文书
党员公开承诺书2016
2016/03/24 职场文书
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电
Pandas 数据编码的十种方法
2022/04/20 Python