微信小程序分享图,利用canvas制图,保存手机,为什么是空白的啊,跟手机系统有关系?

发布于 2022-09-06 19:57:14 字数 1568 浏览 13 评论 0

HTML

<view class='vw'>
    <canvas canvas-id='myCanvas' style='width:375px;height:667px;background:#f5f5f5;'>
    </canvas>
    <button class='btn' bindtap='abc'>
    保存图片
    </button>
</view>

javascript

onReady: function (e) {
    //这是canvas将图片放在canvas上
    var ctx = wx.createCanvasContext('myCanvas')
    var imgPath = 'http://up.qqjia.com/z/23/tu27726_2.jpg'
    var bgImgPath = 'http://img.keaiq.com/d/file/15155477475202100.jpg'
    var smallage = 'https://t2.38mt.com/tempx/11/11767/3762-73772.jpg'
    ctx.setFillStyle('#ffffff')
    ctx.fillRect(0,520,600,280)
    ctx.drawImage(imgPath, 100, 120,180,260)
    ctx.drawImage(smallage, 220, 320,60,60)
    ctx.drawImage(bgImgPath, 30,520,80,100)
    ctx.setFillStyle('#6f6f6f')
    ctx.font = "18px Arial";
    ctx.fillText('歪歪歪', 110,580)
    ctx.draw()
    setTimeout(() => {
      this.canvasImg()
    }, 700)
  }

//转换

 canvasImg: function () {
   console.log(123)
   var that = this
   // 画布转成图片
   wx.canvasToTempFilePath({
     canvasId: 'myCanvas',
     x: 0,
     y: 0,
     width: 375,
     height: 667,
     //生成图片的大小
     destWidth: 375,
     destHeight: 667,
     success: function (res) {
       wx.hideLoading()
       console.log(res.tempFilePath, 'canvas画图片呀')
       that.setData({
         img: res.tempFilePath
       })
     }
   })
 }

然后到手机上面会是全部空白的,存电脑上还能显示,但是还带着按钮 存手机上就是空白的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尬尬 2022-09-13 19:57:14

小程序不能直接使用网络图片,也就是说你上面使用的图片的地址,需要先调用小程序的wx.downloadFile方法,将返回的本地路径绘制到canvas。绘制完成后,再调用保存到相册那个方法就行了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文