js合并两张图片并且保存到相册
注:drawAndshareImage方法合并图片后生成的是base64文件流 android手机执行mui的存储相册是不能使用,所以要吧bbsse64文件流转换为bipmip格式的图片本机路径 才可以
function drawAndShareImage(){
var canvas = document.createElement("canvas");
canvas.width = 700;
canvas.height = 700;
var context = canvas.getContext("2d");
context.rect(0 , 0 , canvas.width , canvas.height);
context.fillStyle = "#fff";
context.fill();
var myImage = new Image();
myImage.src = "/images/shar.jpg"; //背景图片 你自己本地的图片或者在线图片
myImage.crossOrigin = 'Anonymous';
myImage.onload = function(){
context.drawImage(myImage , 0 , 0 , 700 , 900);
context.font = "60px Courier New";
var myImage2 = new Image();
myImage2.src = imgSrc; //你自己本地的图片或者在线图片
myImage2.crossOrigin = 'Anonymous';
myImage2.onload = function(){
context.drawImage(myImage2 , 250 , 425 , 200 , 200);
var base64 = canvas.toDataURL("image/*"); //"image/png" 这里注意一下
if(plus.os.name == "iOS"){
saveImg(base64);
}else{
androidSave("fenxiang",base64,100,"");
}
}
}
}
保存到相册 ios 使用的是plus功能
function saveImg(imgSrc){
var imgDtask = plus.downloader.createDownload(imgSrc,{method:'GET'}, function (d,status) {
if(status == 200){
plus.gallery.save(d.filename, function () {//保存到相册
plus.io.resolveLocalFileSystemURL(d.filename, function (enpty) {
mui.toast("图片已成功保存到相册");
plus.nativeUI.closeWaiting();
});
})
}else{
plus.nativeUI.closeWaiting();
mui.toast('保存失败')
}
});
imgDtask.start()
}
保存到相册 android 使用的是plus功能
function androidSave(uid, base64, quality, callback) {
console.log(234);
quality = quality || 10;
callback = callback || $.noop;
var bitmap = new plus.nativeObj.Bitmap();
// 从本地加载Bitmap图片
bitmap.loadBase64Data(base64, function() {
bitmap.save("_doc/" + uid + ".jpg", {
overwrite: true,
quality: quality
}, function(i) {
console.log(JSON.stringify(i));
var src = i.target;
plus.gallery.save(i.target, function () {//保存到相册
plus.io.resolveLocalFileSystemURL(i.target, function (enpty) {
mui.toast("图片已成功保存到相册");
plus.nativeUI.closeWaiting();
mui.ajax({
url: "https://api.tobye.top/api/version/1/unlink_img",
data:{
"img": imgSrc,
},
async: true,
dataType: 'json',
crossDomain: true,
type: 'post',
timeout: 10000,
success: function(data) {
console.log("删除图片:::"+JSON.stringify(data));
if(data.status == "success"){
imgSrc = data.data;
$("#or_code").attr("src",imgSrc);
}else{
}
},
error: function(xhr,type,errorThrown) {
mui.toast("图片删除失败");
}
});
});
})
}, function(e) {
mui.toast("保存图片失败")
});
}, function(e) {
mui.toast("图片加载失败");
});
}