在官方的截屏案例中,關(guān)于截屏的邏輯也算是比較簡單,copy到項(xiàng)目中也能正常使用。
但是在部分手機(jī)上運(yùn)行,截屏竟然是透明白,renderTexture.readPixels()返回的像素?cái)?shù)據(jù)也沒有任何問題,而canvas.toDataURL('image/jpeg')死活始終是全黑。
首先想到的是canvas.toDataURL這個api是否存在兼容性問題,寫了demo也沒有任何問題呀
排查了很久,整整2天,發(fā)現(xiàn)context.putImage的數(shù)據(jù)竟然全是undefined,下圖解釋了為什么是undefined,太TMD的坑了

image.png
至于cc.visibleRect.height為啥是浮點(diǎn)數(shù),這就不太清楚了,不過這個浮點(diǎn)數(shù)的坑,是真的坑!目前官方案例中還存在這樣的bug,使用前記得
width = parseInt(width.toFixed(0));
height = parseInt(height.toFixed(0));