|
[BUG]
canvas压缩生成圆型头像加密后不可用。
[复制链接]
以下代码正式编译并启用 全局加密后不可用。
getCircle('http://www**.**/uploads/avatar/000/12/06/02_avatar_middle.jpg',108,108);
function getCircle(imgss,x,y) {
var canvas = document.getElementById("tmpCanvas");
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, canvas.width, canvas.height);//清空画布,重新画
//加载图片
var img = new Image()
img.onload = function () {
var width = x;
var height = y;
var circle = {
x: width / 2,
y: height / 2,
r: width / 2
}
var imgwidth = img.width;
var imgheight = img.height;
ctx.clearRect(0, 0, width, height);
var scale = imgheight / imgwidth;
var cheight = x * scale;
//开始路径画圆,剪切处理
ctx.save();
ctx.beginPath();
ctx.arc(circle.x, circle.y, circle.r, 0, Math.PI * 2, false);
ctx.clip(); //剪切路径
ctx.drawImage(img, 0, 0, x, cheight);
//恢复状态
ctx.restore();
var image = canvas.toDataURL("image/jpg");//返回base64
var trans = api.require('trans');
trans.saveImage({
base64Str: image.split(',')[1],
imgPath:"fs://td776/",
imgName:"avatar.png"
}, function(ret, err) {
if (ret.status) {
api.setNavBarAttr({
leftButtons: [{
"iconPath": "fs://td776/avatar.png",
}]
});
} else {
alert(JSON.stringify(err));
}
});
}
img.src = imgss;
}
|
|