zon 分享下我的代码,我因为HTMLCanvas不能处理UV我又懒得转来转去,直接控制U8A了
let htmlCanvas = s.drawToCanvas(s.width, s.height, 0, 0) as Laya.HTMLCanvas
let tex = htmlCanvas.getTexture() as Laya.RenderTexture2D
if (tex) {
let u8 = tex.getData(0, 0, tex.width, tex.height)
let u = new Uint8Array(u8.length)
let len = u8.length / 4
let i = 0
for (let x = len; x >= 0; x--) {
for (let y = 0; y < 4; y++) {
u[i * 4 + y] = u8[x * 4 + y]
}
i++
}
u8 = u
u = new Uint8Array(u8.length)
len = u8.length / s.height
let l2 = len / 4
for (let a = len; a >= 0; a--) {
i = 0
for (let x = l2; x >= 0; x--) {
for (let y = 0; y < 4; y++) {
u[a * len + i * 4 + y] = u8[a * len + x * 4 + y]
}
i++
}
}
let url = conch.getCachePath() + "/myshare.png"
conch.saveAsPng(u, tex.width, tex.height, url);
}