jquery實(shí)現(xiàn)圖片裁剪思路及實(shí)現(xiàn)
更新時(shí)間:2013年08月16日 18:04:40 作者:
JS,jquery不能實(shí)現(xiàn)圖片的裁剪,只是顯示了一個(gè)假象,在服務(wù)器上用獲得的各個(gè)坐標(biāo)值,以及原始圖片,用JAVA進(jìn)行裁剪
思路:JS,jquery不能實(shí)現(xiàn)圖片的裁剪,只是顯示了一個(gè)假象
我的實(shí)現(xiàn)的方式大體如下:
1.將用戶選中的圖片上傳到服務(wù)器
2.將選中頭像的矩形框在圖片上的坐標(biāo)發(fā)送到服務(wù)器,包括,矩形框的寬,高,左上角的x,y坐標(biāo),圖片的高,寬等
3.在服務(wù)器上用獲得的各個(gè)坐標(biāo)值,以及原始圖片,用JAVA進(jìn)行裁剪。
-----------------------------------
jquery 裁剪效果顯示,利用imgAreaSelect
http://odyniec.net/projects/imgareaselect/
http://www.cnblogs.com/mizzle/archive/2011/10/13/2209891.html
效果如下:
JAVA實(shí)現(xiàn)裁剪圖片
http://blog.csdn.net/renfyjava/article/details/9942743
我的例子:
我的是同時(shí)顯示4個(gè)尺寸的頭像,部分代碼如下:
<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', //獲取圖像的實(shí)際寬度
height: Math.round(scaleY * 300) + 'px', //獲取圖像的實(shí)際高度
marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',
marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'
});
$('#avatar100 img').css({
width: Math.round(scaleX2 * 300) + 'px', //獲取圖像的實(shí)際寬度
height: Math.round(scaleY2 * 300) + 'px', //獲取圖像的實(shí)際高度
marginLeft: '-' + Math.round(scaleX2 * selection.x1) + 'px',
marginTop: '-' + Math.round(scaleY2 * selection.y1) + 'px'
});
$('#avatar60 img').css({
width: Math.round(scaleX3 * 300) + 'px', //獲取圖像的實(shí)際寬度
height: Math.round(scaleY3 * 300) + 'px', //獲取圖像的實(shí)際高度
marginLeft: '-' + Math.round(scaleX3 * selection.x1) + 'px',
marginTop: '-' + Math.round(scaleY3 * selection.y1) + 'px'
});
$('#avatar30 img').css({
width: Math.round(scaleX4 * 300) + 'px', //獲取圖像的實(shí)際寬度
height: Math.round(scaleY4 * 300) + 'px', //獲取圖像的實(shí)際高度
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("請(qǐng)先選擇上傳圖片");
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>
顯示效果:
我的實(shí)現(xiàn)的方式大體如下:
1.將用戶選中的圖片上傳到服務(wù)器
2.將選中頭像的矩形框在圖片上的坐標(biāo)發(fā)送到服務(wù)器,包括,矩形框的寬,高,左上角的x,y坐標(biāo),圖片的高,寬等
3.在服務(wù)器上用獲得的各個(gè)坐標(biāo)值,以及原始圖片,用JAVA進(jìn)行裁剪。
-----------------------------------
jquery 裁剪效果顯示,利用imgAreaSelect
http://odyniec.net/projects/imgareaselect/
http://www.cnblogs.com/mizzle/archive/2011/10/13/2209891.html
效果如下:

JAVA實(shí)現(xiàn)裁剪圖片
http://blog.csdn.net/renfyjava/article/details/9942743
我的例子:
我的是同時(shí)顯示4個(gè)尺寸的頭像,部分代碼如下:
復(fù)制代碼 代碼如下:
<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', //獲取圖像的實(shí)際寬度
height: Math.round(scaleY * 300) + 'px', //獲取圖像的實(shí)際高度
marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px',
marginTop: '-' + Math.round(scaleY * selection.y1) + 'px'
});
$('#avatar100 img').css({
width: Math.round(scaleX2 * 300) + 'px', //獲取圖像的實(shí)際寬度
height: Math.round(scaleY2 * 300) + 'px', //獲取圖像的實(shí)際高度
marginLeft: '-' + Math.round(scaleX2 * selection.x1) + 'px',
marginTop: '-' + Math.round(scaleY2 * selection.y1) + 'px'
});
$('#avatar60 img').css({
width: Math.round(scaleX3 * 300) + 'px', //獲取圖像的實(shí)際寬度
height: Math.round(scaleY3 * 300) + 'px', //獲取圖像的實(shí)際高度
marginLeft: '-' + Math.round(scaleX3 * selection.x1) + 'px',
marginTop: '-' + Math.round(scaleY3 * selection.y1) + 'px'
});
$('#avatar30 img').css({
width: Math.round(scaleX4 * 300) + 'px', //獲取圖像的實(shí)際寬度
height: Math.round(scaleY4 * 300) + 'px', //獲取圖像的實(shí)際高度
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("請(qǐng)先選擇上傳圖片");
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 Jcrop 實(shí)現(xiàn)圖片裁剪的插件
- jQuery插件jcrop+Fileapi完美實(shí)現(xiàn)圖片上傳+裁剪+預(yù)覽的代碼分享
- js+jquery實(shí)現(xiàn)圖片裁剪功能
- 基于JQuery實(shí)現(xiàn)的圖片自動(dòng)進(jìn)行縮放和裁剪處理
- 基于jQuery+HttpHandler實(shí)現(xiàn)圖片裁剪效果代碼(適用于論壇, SNS)
- jQuery實(shí)現(xiàn)圖片上傳和裁剪插件Croppie
- jquery.Jcrop結(jié)合JAVA后臺(tái)實(shí)現(xiàn)圖片裁剪上傳實(shí)例
- 利用jQuery插件imgAreaSelect實(shí)現(xiàn)圖片上傳裁剪(放大縮?。?/a>
- JQuery PHP圖片在線裁剪實(shí)例
- jquery實(shí)現(xiàn)自定義圖片裁剪功能【推薦】
相關(guān)文章
jQuery插件JWPlayer視頻播放器用法實(shí)例分析
這篇文章主要介紹了jQuery插件JWPlayer視頻播放器用法,結(jié)合實(shí)例形式分析了JWPlayer插件播放視頻的相關(guān)操作技巧,需要的朋友可以參考下2017-01-01jquery實(shí)現(xiàn)的省市區(qū)三級(jí)聯(lián)動(dòng)
在做項(xiàng)目的時(shí)候,我們經(jīng)常需要用到地址之類的省市區(qū)三級(jí)聯(lián)動(dòng)的,今天就給大家分享一個(gè)非常簡(jiǎn)潔的省市區(qū)三級(jí)聯(lián)動(dòng)的代碼,基于jQuery,附上GIT地址,有需要的小伙伴可以直接拿走2015-04-04使用jQuery給Table動(dòng)態(tài)增加行、清空table的方法
這篇文章主要介紹了使用jQuery給Table動(dòng)態(tài)增加行、清空table的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09jquery動(dòng)態(tài)加載js三種方法實(shí)例
這里為你提供了三種動(dòng)態(tài)加載js的jquery實(shí)例代碼哦,由于jquery是為用戶提供方便的,所以利用jquery動(dòng)態(tài)加載文件只要一句話$.getScript(\"test.js\");就OK了。2013-08-08jquery提示 "object expected"的解決方法
在測(cè)試代碼的時(shí)候,提示object expected,下面的解決方法,可以參考下。2009-12-12jquery計(jì)算出left和top,讓一個(gè)div水平垂直居中的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇jquery計(jì)算出left和top,讓一個(gè)div水平垂直居中的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-07-07jQuery中$(function() {});問(wèn)題詳解
$(function() {});是$(document).ready(function(){ })的簡(jiǎn)寫,最早接觸的時(shí)候也說(shuō)$(document).ready(function(){ })這個(gè)函數(shù)是用來(lái)取代頁(yè)面中的window.onload;但是今天發(fā)現(xiàn) 好像不是這樣回事!是在做一個(gè)頁(yè)面載入效果時(shí)發(fā)現(xiàn)的!2015-08-08