jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
来源: 阅读:2434 次 日期:2015-04-24 11:24:04
温馨提示: 小编为您整理了“jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享”,方便广大网友查阅!

这篇文章主要介绍了jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码,非常的简单实用,效果也很棒,有需要的小伙伴可以参考下。

网页端 裁剪图片,不需要经过服务器。

这个是用 框架实现的。配合jcrop.

高级浏览器 使用 canvas 裁剪,ie6 7 8使用 flash过度。

核心代码:

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

seajs.use(['gallery/jcrop/0.9.12/jcrop.css','gallery/jcrop/0.9.12/jcrop.js'] ,function(){

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 = 500;

img1.matrix.dh = 500;

img1.get(function(err, img) {

// $('#img3').empty();

// $('#img3').append($(img));

$('#img3').html($(img));

});

}

});

});

$('#btn').on('click',function(){

FileAPI.upload({

// url: '/testUpFile/upFile',

// headers: { 'Content-Type': 'multipart/form-data' },

files: { images: img1 },

progress: function (evt){ /* ... */ },

complete: function (err, xhr){ /* ... */

//alert(xhr.responseText);

console.log(xhr);

}

});

});

}

});

});

});

完整代码:

TODO supply a title

Baidu
map

以上所述就是本文的全部内容了,希望大家能够喜欢。

更多信息请查看IT技术专栏

更多信息请查看 脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们| 联系我们| 人才招聘| 网站声明| 网站帮助| 非正式的简要咨询| 简要咨询须知| 加入群交流| 手机站点| 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00) 版权所有:
云南网警报警专用图标
Baidu
map