jquery实现图片裁剪思路及实现

 更新时间:2013年08月16日 18:04:40   作者:  
JS,jquery不能实现图片的裁剪,只是显示了一个假象,在服务器上用获得的各个坐标值,以及原始图片,用JAVA进行裁剪
思路: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
效果如下:
 
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插件autocomplete使用详解

    jQuery插件autocomplete使用详解

    这篇文章主要为大家详细介绍了jQuery插件autocomplete使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • jquery获取img的src值实例介绍

    jquery获取img的src值实例介绍

    在本篇文章里小编给大家分享了关于jquery获取img的src值实例介绍和相关内容,有需要的朋友们学习下。
    2019-01-01
  • jQuery插件JWPlayer视频播放器用法实例分析

    jQuery插件JWPlayer视频播放器用法实例分析

    这篇文章主要介绍了jQuery插件JWPlayer视频播放器用法,结合实例形式分析了JWPlayer插件播放视频的相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • jquery实现的省市区三级联动

    jquery实现的省市区三级联动

    在做项目的时候,我们经常需要用到地址之类的省市区三级联动的,今天就给大家分享一个非常简洁的省市区三级联动的代码,基于jQuery,附上GIT地址,有需要的小伙伴可以直接拿走
    2015-04-04
  • jQuery 性能优化手册 推荐

    jQuery 性能优化手册 推荐

    现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了,  比如我.  jquery虽在诸多的js类库中性能表现还算优秀, 但毕竟不是在用原生的javascript开发, 性能问题还是需要引起重视的.
    2010-02-02
  • 使用jQuery给Table动态增加行、清空table的方法

    使用jQuery给Table动态增加行、清空table的方法

    这篇文章主要介绍了使用jQuery给Table动态增加行、清空table的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • jquery动态加载js三种方法实例

    jquery动态加载js三种方法实例

    这里为你提供了三种动态加载js的jquery实例代码哦,由于jquery是为用户提供方便的,所以利用jquery动态加载文件只要一句话$.getScript(\"test.js\");就OK了。
    2013-08-08
  • jquery提示 "object expected"的解决方法

    jquery提示 "object expected"的解决方法

    在测试代码的时候,提示object expected,下面的解决方法,可以参考下。
    2009-12-12
  • jquery计算出left和top,让一个div水平垂直居中的简单实例

    jquery计算出left和top,让一个div水平垂直居中的简单实例

    下面小编就为大家带来一篇jquery计算出left和top,让一个div水平垂直居中的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • jQuery中$(function() {});问题详解

    jQuery中$(function() {});问题详解

    $(function() {});是$(document).ready(function(){ })的简写,最早接触的时候也说$(document).ready(function(){ })这个函数是用来取代页面中的window.onload;但是今天发现 好像不是这样回事!是在做一个页面载入效果时发现的!
    2015-08-08

最新评论