收藏
回答

Canvas.toTempFilePath 截图透明背景变黑色?


  let canvas = document.createElement('canvas');

        canvas.width = width;

        canvas.height = height;

        let ctx = canvas.getContext('2d');


        let gpTexture = new cc.RenderTexture(); //绘制

        //@ts-ignore

        gpTexture.initWithSize(widthheightcc.game._renderContext.STENCIL_INDEX8);

        this.gpCamera.targetTexture = gpTexture;

        this.gpCamera.render(this.node);//相机绘制,将屏幕上的内容更新到renderTexture中

        let data = gpTexture.readPixels();//读取renderTexture中的数据

        // data = this.changeAlpha(data);


        let rowBytes = width * 4;

        for (let row = 0row < heightrow++) {

            let srow = height - 1 - row;

            let imageData = ctx.createImageData(width1);

            let start = srow * width * 4;

            for (let i = 0i < rowBytesi++) {

                imageData.data[i] = data[start + i];

            }

            ctx.putImageData(imageData0row);

        }

 

let _tempFilePath = await canvas.toTempFilePathSync(

                {

                    x: 0,

                    y: 0,

                    width: width,

                    height: height,

                    destWidth: 380,

                    destHeight: 380,

                    fileType: 'png',

                    quality: 1

                });


            wx.previewImage({

                urls: [_tempFilePath

            })

明明是透明部分 怎么就变成黑色了

最后一次编辑于  09-12
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    09-12

    加个白色背景

    09-12
    赞同
    回复
  • 陈聪
    陈聪
    09-12

    这是手机的背景色,图片是png没错,用ps打开还是透明

    09-12
    赞同
    回复 2
    • SolarFrank
      SolarFrank
      09-12
      我只是 截图一个节点上的 没有背景图
      09-12
      回复
    • SolarFrank
      SolarFrank
      09-12

      我用Graphics组件绘画 然后截图保存 没有背景图 微信开发工具调试 显示是正常的 但是 微信上测 图片就有黑色了,好像是 微信存的图片默认Alpha值都是100%

      09-12
      回复
问题标签