Image Cropper 裁剪图片

使用Image Cropper插件裁剪图片,是将原图片流以及裁剪的top,left,width,height值传递

/上传图片/
(‘.upload-img’).on(‘change’,function() {  
   var ieVersion = Number(document.documentMode);  
   if(ieVersion < 10) {
(this).select();
$(this).blur();
//获取绝对路径
var src = document.selection.createRange().text;
artDialog.data(“img_data”, src);
} else {
var reader = new FileReader();
reader.onload = function(event) {
var src = event.target.result;
artDialog.data(“img_data”, src);
};
if(input.files && input.files[0]) {
reader.readAsDataURL(input.files[0]);
}
var data = artDialog.data(“img_data”); 此处data值是原图片流
之后将data.toString()传递到后台去处理,需要注意的是,在处理图片流的时候,
一般插件返回的base64编码的字符串都是有一个前缀的。

“data:image/jpeg;base64,” 解码之前这个得去掉。这里是通过截取字符串去除的

var idx = stream.indexOf(‘,’);
var value = stream.substring(idx + 1);

后台处理过程:
public String addImg(String stream, String w, String h, String x, String y) {
String url = null;
BASE64Decoder decoder = new BASE64Decoder();
try {
byte[] b = decoder.decodeBuffer(stream);
InputStream is = new ByteArrayInputStream(b);
String fileName = System.currentTimeMillis() + “.png”;
String upload = OSSManageUtil.upload(is, “dudu”, fileName);
url = upload + “?x-oss-process=image/crop,x_” + x + “,y_” + y + “,w_” + w + “,h_” + h + “”;
} catch (Exception e) {
e.printStackTrace();
}
return url;
}
首先将裁剪过后的图片流,进行base64解密,转换成byte数组,再转换成InputStream,将原图片上传到OSS,返回图片url

image cropper裁剪图片是将原图片的url地址进行指定格式的拼接来实现

?x-oss-process=image/crop,x_” + x + “,y_” + y + “,w_” + w + “,h_” + h + ” 指定格式。

在ajax成功回调之后,将裁剪后的图片url设置在image的src路径中,用来回显,并添加一个 隐藏域用来在保存对象的时候使用。

parent1.document.getElementsByClassName(‘image’)[0].src = data;
parent1.document.getElementById(‘avatar’).value = data;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值