收藏
回答

关于微信小程序 canvas 2d 的问题,下面这段码,苹果系统可,安卓不行,谁知道问题所在?

onClickConfirm() {

    const {

      dpr,

      imageSrc,

      x,

      y,

      initialScale,

      scale,

      clipWidth,

      clipHeight,

    } = this.data


    const totalScale = scale * initialScale

    const sx = -x / totalScale

    const sy = -y / totalScale

    const canvasWidth = clipWidth / totalScale

    const canvasHeight = clipHeight / totalScale


    this.setData({ canvasWidth, canvasHeight })


    const query = wx.createSelectorQuery()

    query

      .select('.canvas')

      .fields({ node: true, size: true })

      .exec((res) => {

        const canvas = res[0].node

        const context = canvas.getContext('2d')


        canvas.width = res[0].width * dpr

        canvas.height = res[0].height * dpr

        context.scale(dpr, dpr)


        const canvasImg = canvas.createImage()

        canvasImg.src = imageSrc

        canvasImg.onload = () => {

          context.drawImage(

            canvasImg,

            sx,

            sy,

            canvasWidth,

            canvasHeight,

            0,

            0,

            canvasWidth,

            canvasHeight

          )

       

          wx.canvasToTempFilePath({

            fileType: 'jpg',

            canvas,

            success: (res) => {

              // TODO: 这里在实际项目中应该是调用 wx.uploadFile 来上传采集后图片

              const app = getApp()

              app.globalData.avatar = res.tempFilePath


              var pages = getCurrentPages(); // 获取页面栈

              var currPage = pages[pages.length - 1]; // 当前页面

              var prevPage = pages[pages.length - 2]; // 上一个页面

              var index3=this.data.index3;

            prevPage.data.fielddata[index3].img_arr=prevPage.data.fielddata[index3].img_arr.concat(res.tempFilePath)

               prevPage.setData({

                fielddata:prevPage.data.fielddata// 假数据

               })


              wx.navigateBack()

            },

          })}

       // })

      })

  },

最后一次编辑于  2021-11-28
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2021-11-29

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

    2021-11-29
    有用
    回复 1
    • 阿刘
      阿刘
      2021-11-29
      安卓系统需要,手动缩放一下图片才行,苹果各鸿蒙不用
      2021-11-29
      回复
  • 阿刘
    阿刘
    2021-11-28

    为的是实现简单的打开图片,然后裁剪,返回

    2021-11-28
    有用
    回复
登录 后发表内容