微信小程序 canvas教程 - 2

2019-05-29  本文已影响0人  narcissus灬

将图片绘制到canvas上

一、CanvasContext.drawImage(imageResource, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)

绘制图像到画布

有三种写法

1、绘制一张网络图片

    let ctx = wx.createCanvasContext('canvas-demo')
    // 绘制一张网络图片
    wx.showLoading({
      title: '图片资源加载中',
    })
    wx.getImageInfo({
      src: 'http://dik.img.kttpdq.com/pic/43/30016/b730794eb0343dcc.jpg',
      success(res){
        ctx.drawImage(res.path, 0, 0, 340, 190)
        ctx.draw()
        wx.hideLoading()
      },
      fail(err){
        console.log(err)
      }
    })

2、绘制一张本地图片

    let ctx = wx.createCanvasContext('canvas-demo')
    // 绘制一张本地图片
    ctx.drawImage('/static/img/logo.jpg', 0, 0,)
    ctx.draw()

微信小程序CanvasContext.drawImage

二、将canvas保存到本地相册

    let _that = this
    // canvas保存为临时文件,类型为jpg
    wx.canvasToTempFilePath({
      canvasId: 'canvas-demo',
      fileType: 'jpg',
      success(img) {
        // 将canvas的临时文件保存到相册
        wx.saveImageToPhotosAlbum({
          filePath: img.tempFilePath,
          fileType: 'jpg',
          success() {
            wx.showToast({
              title: '图片保存成功',
              icon: 'success'
            })
          },
          fail(err) {
            if (err.errMsg == 'saveImageToPhotosAlbum:fail cancel') {
              console.log('取消')
              wx.showToast({
                title: '取消保存',
                icon: 'none'
              })
            } else if (err.errMsg == 'saveImageToPhotosAlbum:fail auth deny') {
              console.log('未授权')
              wx.showToast({
                title: '未授权',
                icon: 'none'
              })
            }
          }
        })
      }
    })

三、打开授权

如果用户拒绝了授权,则无法保存图片到本地。需要给用户打开授权

<button class="open" hidden="{{open}}" open-type="openSetting" bindtap="openSetting"> 修改授权 </button >
上一篇下一篇

猜你喜欢

热点阅读