微信小程序保存画布到相册

在上一章中实现生成画布后,现考虑实现保存画布至本地相册。

result.wxml:

<view class='container'>

<canvas class="result" canvas-id="resultCanvas"></canvas>

</view>

<view class='buttom'>

<image class="save" src='../../images/save.png' bindtap='saveClick'></image>

<text class="save_text">保存到手机</text>

<image class="share" src='../../images/share.png' bindtap='shareClick'></image>

<text class='share_text'>分享给好友</text>

</view>

result.js:

// pages/result/result.js

const promisify = require('promisify')

Page({

/**

* 页面的初始数据

*/

data: {

}

/*生命周期函数--监听页面初次渲染完成*/

onReady: function () {

const wxGetImageInfo = promisify(wx.getImageInfo)

Promise.all([

wxGetImageInfo({

src: 'https://www.wonderfulbox.club/images/1@theme.png'

}),

wxGetImageInfo({

src: 'https://www.wonderfulbox.club/images/code.jpg'

})

]).then(res => {

const ctx = wx.createCanvasContext('resultCanvas')

// 底图

ctx.drawImage(res[0].path, 0, 0)

// 作者名称

ctx.setFillStyle("#02446e");

ctx.setFontSize(26);

ctx.setTextAlign("center");

ctx.fillText("结果", 170, 100 - 60);

ctx.setTextAlign("left");

ctx.setFillStyle("black");

ctx.setFontSize(18);

ctx.fillText("我等你", 50, 120 - 60);

ctx.setFontSize(22);

// 小程序码

const qrImgSize = 180

// ctx.drawImage(res[1].path, (600 - qrImgSize) / 2, 530, qrImgSize, qrImgSize)

ctx.drawImage(res[1].path, 0, 275, 100, 100)

var that = this;

ctx.stroke()

ctx.draw(true, setTimeout(function (){//此处把画布的完成放入draw中,并存放在临时路径

wx.canvasToTempFilePath({

canvasId: 'resultCanvas',

success: (res) => {

that.setData({

shareTempFilePath: res.tempFilePath

})

}

})

}))

})

},

saveClick:function(){

if (!this.data.shareTempFilePath) {

wx.showModal({

title: '提示',

content: '图片绘制中,请稍后重试',

showCancel: false

})

}

wx.saveImageToPhotosAlbum({

filePath: this.data.shareTempFilePath,

success: (res) => {

console.log(res)

},

fail: (err) => {

console.log(err)

}

})

},

})

 

 

转载于:https://my.oschina.net/u/3972771/blog/2250539

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值