收藏
回答

canvas 2d 画布高度设置过高,无法绘制的问题,最大可以设置多高?

需求如下,我需要绘制几张图片,从上往下绘制,假如图片总高度超过了4000,那么在真机上就无法绘制了,做了很多次试验,发现超过4000后就会出现问题,少于4000能绘制成功,如果有最高的限制,那这种需求应该怎么实现呢?

代码如下:

// 获取canvas实例和画笔
    getMyCanvasAndCtx(id) {
      return new Promise(resolve => {
        const query = wx.createSelectorQuery().in(this) //因为在组件中----所以要加入 .in(this)如果在页面中可以去掉
        query.select(`#${id}`)
          .fields({
            node: true,
            size: true
          })
          .exec((res) => {
            const canvas = res[0].node
            const ctx = canvas.getContext('2d')
            const dpr = wx.getSystemInfoSync().pixelRatio
            // canvas.width = this.data.maxWidth
            // canvas.height = this.data.totalHeight
            console.log('根据图片尺寸设置画布宽高:', this.data.maxWidth, '----:', this.data.totalHeight)
            
            canvas.width = 2000
            canvas.height = 4000
  //如果给height设置超过4000的值,在真机上无法得到canvas 和ctx
       this.setData({
                  canvas: canvas,
                  ctx: ctx
                }, () => {
                  resolve({
                canvas,
                ctx
              })
            })
          })
      })


回答关注问题邀请回答
收藏

2 个回答

  • 青团社
    青团社
    2021-10-14

    多个canvas画图。

    2021-10-14
    有用
    回复 9
    查看更多(4)
  • 終、
    終、
    2021-10-12

    画几张图片有这么大一张的图片嘛,图片大小不是你自己控制的嘛




    2021-10-12
    有用
    回复 3
    • '🍁🍁🍁1
      '🍁🍁🍁1
      发表于移动端
      2021-10-12
      原图绘制,按照比例来的,就算图片很小,也架不住多啊,比如50张,是不是肯定超过4000了
      2021-10-12
      回复
    • 武曲心
      武曲心
      2021-10-12回复'🍁🍁🍁1
      2d的高度是有限制的,用之前那个canvas的api吧,那个没限制,不过像素大的图像性能真不行
      2021-10-12
      回复
    • '🍁🍁🍁1
      '🍁🍁🍁1
      2021-10-12
      好的,我也发现了,具体数值是4096,超过就没法绘制了,只能用之前那个API,多谢
      2021-10-12
      回复
登录 后发表内容