收藏
回答

putImageData设置imageData中的透明度为0时无效?

代码片段:https://developers.weixin.qq.com/s/1M1Izbmt7Vvr

调试库:2.21.0

    let imageData = ctx.getImageData(00, canvasWidth, canvasHeight);
    let data = imageData.data;
    for (let i = 0; i < data.length; i += 4) {
      data[i] = 255;
      data[i + 1] = 0;
      data[i + 2] = 0;
      data[i + 3] = 0; // 设置为0就有问题
      // data[i + 3] = 255; 
    }
    ctx.putImageData(imageData, 0000, canvasWidth, canvasHeight);

设置imageData的透明度为0时,真机上并没有透明,反而和设置255是一样的

页面背景色为灰色,上面代码设置整个canvas对应的imageData的透明度都设置了0,期望是整个canvas透明,但测试结果如下

真机上(显示异常,没有透明):在多台安卓机和IOS上测试结果都有问题

开发者工具上(正常,变为透明):



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

1 个回答

  • HSL
    HSL
    2021-12-16

    解决了吗? 我也遇到这个坑

    2021-12-16
    有用
    回复 1
    • L
      L
      2021-12-31
      放弃这个方案了,采用clearRect这个api来擦除像素点,从而达到透明的效果
      2021-12-31
      回复
登录 后发表内容