前端用的是 Jcrop+FileAPI,后台用jfinal写如何接收Canvas内的图片?

发布于 2021-11-29 14:00:13 字数 1997 浏览 922 评论 1

<canvas width="150" height="150"></canvas>


var el = $('input').get(0);


FileAPI.event.on(el, 'change', function(evt) {
var files = FileAPI.getFiles(evt); // Retrieve file list


FileAPI.filterFiles(files, function(file, info) {
if (!/^image/.test(file.type)) {
alert('图片格式不正确');
return false;
} else if (file.size > 20 * FileAPI.MB) {
alert('图片必须小于20M');
return false;
} else {
return true;
}


}, function(files, rejected) {
 console.log(files);
if (files.length) {
var file = files[0];
var img0 = FileAPI.Image(file);
var img1 = FileAPI.Image(file);
var ratio = 0;
FileAPI.getInfo(file, function(err, info) { //get image ratio
if (!err) {
if (info.width > info.height) {
ratio = info.width / 500;
} else {
ratio = info.height / 500;
}
}
});


img0.resize(500, 500, 'max') //place image and register jcrop
.get(function(err, img) {
$('#img2').empty();
$('#img2').append($(img));


$('#img2').children().Jcrop({
aspectRatio : 1,
bgColor : 'rgba(0,0,0,0.4)',
onSelect : function(c) {
img1.matrix.sx = c.x * ratio;
img1.matrix.sy = c.y * ratio;
img1.matrix.sw = c.w * ratio;
img1.matrix.sh = c.h * ratio;
img1.matrix.dw = 150;
img1.matrix.dh = 150;


img1.get(function(err, img) {
// $('#img3').empty();
//   $('#img3').append($(img));
$('#img3').html($(img));
});


}
});
});
$('#btn').on('click', function() {
FileAPI.upload({
url : '/console/action/upfile',
//headers: { 'Content-Type': 'multipart/form-data' },
files : {
images : img1
},
progress : function(evt) { /* ... */
},
complete : function(err, xhr) { /* ... */
alert(xhr.responseText);


}
});


});


}
});
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如日中天 2021-11-30 23:07:21

把坐标传到后台去,后台切割图片

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文