RenderTexture.readPixels返回的data全是黑屏?

export function captureScreenToTexture(camera:cc.Camera):cc.SpriteFrame {

let newTexture:cc.RenderTexture = new cc.RenderTexture();

let oldTexture:cc.RenderTexture = camera.targetTexture;

newTexture.initWithSize(cc.visibleRect.width, cc.visibleRect.height, cc.RenderTexture.DepthStencilFormat.RB_FMT_S8);

camera.targetTexture = newTexture;

camera.render();

camera.targetTexture = oldTexture;

let spriteFrame:cc.SpriteFrame = new cc.SpriteFrame(newTexture);

spriteFrame.setFlipY(true);

return spriteFrame;

}

let spriteFrame = captureScreenToTexture(mainCamera)
let data = spriteFrame.getTexture().readPixels();

for (let i = 100 ; i < 150;i++)
{
console.log(’ data[’+i +’] = ’ +data[i];
}

结果全是 0
但把spriteFrame设置到一个Node上是可以正常显示的,这个是什么问题啊?

问题已解决,上屏canvas不能使用readPixels

请问是否找到合适的方法读取像素信息?

离屏CANVAS可读 上屏CANVAS不可读

该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。