- 小游戏使用截图分享功能, 绘制子域之后,在调试基础库2.6.4 , 2.6.5下 截图是透明的。
发现只要添加了子域就会出现黑屏,微信开发者工具 2.6.4 以上 使用 readPixels 读取的数据全是 0
使用微信的截图接口吧。
canvas.toTempFilePathSync();
用的就是这个接口啊,关键调用这个接口之前绘制的canvas是一张透明图片。应该是微信对readPixels这个接口进行了限制。请问下小游戏有别的截图方式吗?
你给我一个你的测试demo,我今天试了截子域的图是没问题的。
微信的截图接口可以直接调用,不用再使用creator的rendtexture之后再去绘制一个canvas然后截图。游戏初始化是creator已经创建了一个canvas绘制游戏场景了。
如果 我只需要截一个节点的内容呢,不需要包含整个界面
这个可以截矩形,如果节点的贴图是不规则的,或者是个圆的话,节点底下的内容也会被截进去吧
我现在也遇到这个问题了 ?你是怎么解决的呢?我要截图是带遮罩的
toTempFilePathWx2 () {
var scheduler = cc.director.getScheduler();
var self= this;
scheduler.schedule(function () {
var canvas = wx.createCanvas();
var sceneSize = cc.director.getWinSize();
canvas.width = sceneSize.width;
canvas.height = sceneSize.height;
// canvas坐标左上角开始算 toTempFilePathSync 异步接口
canvas.toTempFilePath({
x: 0,
y:0,
width: sceneSize.width,
height: sceneSize.height,
destWidth: sceneSize.width,
destHeight: sceneSize.height,
fileType: ‘png’,
quality: 1,
success: function (res) {
let picUrl = res.tempFilePath;
self.sceneAddPic(picUrl);
},
fail: function () {
if (params.failed) {
params.failed();
}
}
});
}, this, 0, 0, 0, false);
},
sceneAddPic (urlimg) {
setTimeout(()=>{this.textNode.active = false; },5000);
var node = new cc.Node("New Node");
var sprite = node.addComponent(cc.Sprite);
node.parent = this.addNode;//cc.director.getScene();
node.anchorX = 0;
node.anchorY = 0;
node.x = 360;
node.y = 640;
var image = new Image();
image.src = urlimg;
image.onload = function () {
try{
image.onload = null;
image.onerror = null;
var texture = new cc.Texture2D();
texture.initWithElement(image);
texture.handleLoadedTexture();
let spriteFrame = new cc.SpriteFrame();
spriteFrame.setTexture(texture);
sprite.spriteFrame = spriteFrame;
}catch(e){}
};
},
你好,这种截图,没有显示,通过断点texture是不对的,请问怎么解决! 环境微信平台下。
调用这个方法之前,先调用一下camera.render(),透明问题就解决了,不用creator官方的微信截图方案
大佬,可以分享一下子域截图的代码吗?我这边canvas取cc.game.canvas无论开不开子域都是黑图
let canvas: any = game.canvas
let tempFilePath =canvas.toTempFilePathSync({
destWidth: 400,
destHeight: 300,
})
data.outFilePath =tempFilePath
data.callback && data.callback(data, pixels_new);
微信工具无效!!!只能真机

