裁剪图片并上传到七牛云
使用cropper(jquery插件)来裁剪缩放图片,并上传图片到七牛上。
图片裁剪依赖资源
cropper.css
cropper.js
jquery-2.1.0.js
1、构建html结构
<div id="content">
<form id="NewQyq">
<div class="SeeCont">
<p><span style="color: red;">*</span>选择图片:</p>
<div class="SeeImg image_container">
<img class="myimg" src='' />
</div>
<button class="TxText xzBtn" id="imgReplaceBtn" type="button">更换图片 </button>
<br />
base64地址:<input name="url" id="imgShowurlbase" style="width: 400px;" value="f12打开控制台查看" />
<br />
七牛云地址: <input name="url" id="imgShowurl" style="width: 400px;" />
</div>
</form>
</div>
创建函数
function upImg(bili){
$("#imgReplaceBtn").on("click",function(){
$("body").prepend('<div class="parsetcroBox" >'
+'<div class="cropperBox">'
+'<h4 class="boxH4" >图片裁剪 <a class="imgBoxBtn">选择图片 <input type="file" class="file_upload" /></a> </h4>'
+'<hr />'
+'<div class="imgBox"><img id="preview" src="" /></div>'
+'<div class="imgBoxyulan"><img id="previewyulan" src="" /></div>'
+'<div class="bottomBox">'
+'<button class="imgBoxBtn queding">确定</button>'
+'<button class="imgBoxBtn xuanzhuan">旋转</button>'
+'</div>'
+' </button>'
+'</div>'
+'</div>')
})
}
裁切图片主要是以下代码:
$img.cropper({
aspectRatio: bili, //1 / 1, //图片比例,1:1
crop: function (data) {
var $imgData = $img.cropper('getCroppedCanvas')
var dataurl = $imgData.toDataURL('image/png');
$("#previewyulan").attr("src", dataurl)
},
built: function (e) {
}
});
七牛云上传base64图片
function putb64(picBase){ //七牛云官方文档方法
/*picUrl用来存储返回来的url*/
var picUrl;
/*把头部的data:image/png;base64,去掉。(注意:base64后面的逗号也去掉)*/
picBase=picBase.substring(22);
/*通过base64编码字符流计算文件流大小函数*/
function fileSize(str) {
var fileSize;
if(str.indexOf('=')>0) {
var indexOf=str.indexOf('=');
str=str.substring(0,indexOf);//把末尾的’=‘号去掉
}
fileSize=parseInt(str.length-(str.length/8)*2);
return fileSize;
}
/*把字符串转换成json*/
function strToJson(str) {
var json = eval('(' + str + ')');
return json;
}
//http://upload-z2.qiniu.com/putb64/ 只适用于七牛云华南空间 因为我的是七牛云华南空间,如果不是华南空间需要根据七牛云文档进行更改
var url = "http://upload-z2.qiniu.com/putb64/"+fileSize(picBase);
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function(){
if (xhr.readyState==4){
var keyText=xhr.responseText;
/*返回的key是字符串,需要装换成json*/
keyText=strToJson(keyText);
/* http://image.haoqiure.com/ 是我的七牛云空间网址,keyText.key 是返回的图片文件名*/
picUrl="http://image.haoqiure.com/"+keyText.key;
console.log(picUrl);
$("#imgShowurl").val(picUrl) //将图片链接显示在输入框去
}
}
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/octet-stream");
xhr.setRequestHeader("Authorization", "UpToken "+upImgageToken+"");
xhr.send(picBase);
}
最后,在页面调用函数并传递需要裁剪的图片比例即可,如下:
upImg(1/1) //裁剪1:1比例的图片
效果如下:
参考:
github上的cropper项目 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间 cropper项目的中文介绍 如何上传base64编码图片到七牛云版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。