美文网首页
微信小程序 canvas教程 - 2

微信小程序 canvas教程 - 2

作者: narcissus灬 | 来源:发表于2019-05-29 19:00 被阅读0次

    将图片绘制到canvas上

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

    绘制图像到画布

    • imageResource: 所要绘制的图片资源
    • sx: 源图像的矩形选择框的左上角 x 坐标
    • sy: 源图像的矩形选择框的左上角 y 坐标
    • sWidth: 源图像的矩形选择框的宽度
    • sHeight: 源图像的矩形选择框的高度
    • dx: 图像的左上角在目标 canvas 上 x 轴的位置
    • dy: 图像的左上角在目标 canvas 上 y 轴的位置
    • dWidth: 在目标画布上绘制图像的宽度,允许对绘制的图像进行缩放
    • dHeight: 在目标画布上绘制图像的高度,允许对绘制的图像进行缩放

    有三种写法

    • drawImage(imageResource, dx, dy)
    • drawImage(imageResource, dx, dy, dWidth, dHeight)
    • drawImage(imageResource, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)从 1.9.0 起支持

    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 >
    

    相关文章

      网友评论

          本文标题:微信小程序 canvas教程 - 2

          本文链接:https://www.haomeiwen.com/subject/vesytctx.html