jquery_图片裁剪上传插件
@[jquery, , cropper]
插件说明图片选择:支持IE和chrome一般游览器,通过file组件选择好图片后以base64编码格式去渲染图片
图片裁剪 :图片裁剪通过cropper.js
图片上传 :图片上传是拿到图片的base64编码再通过ajax上传到后端
使用说明 引入静态库
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/cropper.min.css">
<script src="js/jquery.min.js"></script>
<script src="js/cropper.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
模态框片段
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
×
</button>
<h4 class="modal-title" id="myModalLabel">
图片裁剪
</h4>
</div>
<div class="modal-body" id="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭
</button>
<button type="button" class="btn btn-primary" onclick="getCopeData()">
确定
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal -->
</div>
提供的API
实例化对象
/*
* imgid:当前图片绑定的id
* modelid:裁剪图片容器的id
* imgFile:选择当前的图片
* ele:图片容器的节点选择器
* width:生成图片的宽度
* height:生成图片的高度
* */
w.Base64 = function(imgid,modelid,imgFile, ele, width, height){}
实例化对象=实例化图片选择器(返回图片的base64)
base64 = new Base64('id','modal-body',imgFile,'img-list', 400, 400);
图片裁剪(base64 .corpImg())
this.corpImg = function () {
if (!$('#'+this.imgid).length) {
alert("请先上传图片!");
return;
};
$("#"+this.modelid).empty();
$("#"+this.modelid).append(originImgNode);
var modeId= this.modelid;
$('#'+modeId + " " +">" + ' ' + 'img').cropper({
aspectRatio: 1 / 1,
crop: function(data) {
}
});
}
use:
base64.corpImg();
获取图片裁剪的base64(base64 .getCopeData(callback)
//获取裁剪结果
this.getCoprDataUrl = function (callback) {
var imgID = this.imgid
$('#'+this.modelid + " " +">" + ' ' + 'img').cropper('getCroppedCanvas').toBlob(function (blob) {
blobToDataURL(blob,function (data) {
callback(imgID,data)
})
})
}
use:
base64.getCoprDataUrl(function (id,data) {
回调函数
id:修改哪张图片的scr值
data:裁剪返回的base64
.....自己其他的逻辑
})
上传图片(base64 .getCopeData(callback)
//上传图片
/**
* url:上传到后台的接口地址
* beforCallback:正在上传时的回调
* succCallback:上传成功的回调
* errorCallback:上传失败的回调
* */
this.uploaImgFile = function (url,beforCallback,succCallback,errorCallback) {
if (!$('#'+this.imgid).length) {
alert("请先上传图片!");
return;
};
$.ajax({
url : url,
type : 'POST',
data : $('#'+this.imgid).attr("src"),
processData : false,
contentType : false,
beforeSend:function(){
loadingback();
},
success : function(responseStr) {
if(responseStr.status===0){
callback(responseStr)
}else{
errorback();
}
},
error : function(responseStr) {
errorback();
}
});
};
use:
base64.uploaImgFile(function () {
},function () {
alert("loading")
},function () {
alert("success")
},function () {
alert("error");
})
截图预览
Dome代码
https://github.com/Gerkeyoung/imgUpLoadCrop
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。