感谢分享~
感觉分享 !!
大佬,这两个设置后,截图的依然不是透明背景
尝试过使用这个
const colorAttachment = new gfx.ColorAttachment();
colorAttachment.loadOp = gfx.LoadOp.LOAD;
colorAttachment.endLayout = gfx.TextureLayout.SHADER_READONLY_OPTIMAL;
const depthStencilAttachment = new gfx.DepthStencilAttachment();
const passInfo = new gfx.RenderPassInfo([colorAttachment], depthStencilAttachment);
texture.reset({width: 300, height: 500, passInfo: passInfo});
也有问题,endLayout 这个属性也会去掉了
我截图没有用单独的layer, 截图相机向右偏移了10000, 完了把要截的节点也偏移10000,保证截图相机只能拍到想要的节点元素, 你看看是不是这个原因
感谢大佬回复
通过编辑器操作,可以透明底,但是通过代码的方式不行·····
我再看看吧
求试试 3.4 的 RT readPixels 截图,现在全平台统一了

读数据是可以了```如何保存呢?jsb.saveImageData这个方法没有了啊?
/**
* write a ValueMap into a plist file
*
*@param dict the ValueMap want to save (key,value)
*@param fullPath The full path to the file you want to save a string
*@return bool
*/
export function writeToFile (valueMap:any):boolean;
jsb.d.ts这里的参数类型也不对吧,还少了一个参数吧```这里不知道能不能用ArrayBuffer或者Uint8Arrray?
cocos creator 3.4.0spine动画插槽实现中sp.skeletonTextureon在模拟器上找不到,是不是只能在web上使用

试试这个转base64?
writeDataToFile 是 ArrayBuffer 类型的数据
这个接口不能直接将图片ArrayBuffer转base64,它和canvas.toDataURL转base64是不一样的,canvas.toDataURL转换时候是有特殊处理的;使用window.btoa转base64,数据没法还原成图片
readPixels读出来的数据做了翻转之后能直接用writeDataFile保存到手机里为图片格式吗?
saveImageData这个接口为什么就没了呢?
二进制拼成字符串,填入btoa转换后加上base64的头(data:image/png…那段)应该可以还原图片的,不够好像不能像toDataURL设置清晰度了
可以试试其他人提到的 btoa,writeDataFile 可以写入到任何格式,可以尝试转成 base64 之后存成 png 格式,也可以尝试使用引擎自带的 libpng 看看有没有方法。之所以没有 saveImageData 是因为现在的数据源是通用的 FrameBuffer,不再是以前的 canvas 了,完全跨平台,不局限于 web 端。
看到大神们侃侃而谈,瞬间感觉格格不入,我折腾一下午,嫩是没把图片存到本地,有哪位大神指导下,不甚感激
我这边发布微信小程序,用上面的方法,copyRenderTexture获取到的arrayBuffer全是0,没得数据呢

