用的是官方例子的capture_to_wechat.js的代码, 而且安卓机的表现和ios耗时差别很大
第二张是安卓机小米NOTE3的时间戳显示
第三张是IPHONE 7P的耗时显示
let start = srow * width * 4; 改为 let start =Math.floor(srow * width * 4),也试过了,效果不大
求大神指导?
用的是官方例子的capture_to_wechat.js的代码, 而且安卓机的表现和ios耗时差别很大
第二张是安卓机小米NOTE3的时间戳显示
第三张是IPHONE 7P的耗时显示
let start = srow * width * 4; 改为 let start =Math.floor(srow * width * 4),也试过了,效果不大
求大神指导?
测试机是小米6
参照工程:examples-case.zip (1.2 MB)
有三个截图
截图1是官方示例中的方案,测试结果总共截图用了2.3s,大部分耗时是在创建截图的图片data上面
截图2针对截图1,在创建ImageData上面稍微优化了一下,不是每一行去创建一行的ImageData,而是建立一个大的ImageData,直接针对像素做处理,节省了一部分alloc的开销:
截图3的话应用的场景可能会比较特殊,不具有通用性,目前测下来canvas的大小以及坐标变化,摄像机的坐标变化的时候,不影响截图效果。不过一些特殊的情况可能会有问题,小心使用:
优化方案仅供参考
另外可以参考的帖子:https://forum.cocos.com/t/cocoscreator/72580
虽然是讨论原生的截图,与微信小游戏的环境不同,但也有一定的参考价值