-
Creator 版本号:1.5.1
-
目标平台:( iOS / Android)
-
操作系统:所有系统
-
下面是截屏代码 参照子龙大大的代码
var size = cc.director.getWinSize();
var currentDate = new Date();
var fileName = “result_share.jpg”;
var fullPath = jsb.fileUtils.getWritablePath() + fileName;
if(jsb.fileUtils.isFileExist(fullPath)){
jsb.fileUtils.removeFile(fullPath);
}
var texture = cc.RenderTexture.create(Math.floor(size.width), Math.floor(size.height), 1, 0);
// texture.setPosition(cc.p(size.width/2, size.height/2));
texture.begin();
cc.director.getScene()._sgNode.visit();
texture.end();
console.log(“截屏”);
texture.saveToFile(fileName, cc.ImageFormat.JPG);
自己顶起,请帮帮忙,获者提供一个替代方案


截图就是这个样子
顺带还有一声惨叫
改成
cc.find("Canvas).node._sgNode.visit()
或者
cc.find("Canvas)._sgNode.visit()
试试,我没试过,只是自己的想法,如果不对那就当我没说。。。。
试过了,也是一样的,应该不是这个的问题
var renderTexture = cc.RenderTexture.createMath.floor(size.width), Math.floor(size.height), cc.Texture2D.PIXEL_FORMAT_RGBA8888, gl.DEPTH24_STENCIL8_OES);
试试这种方式
按节点截得吧
也试过呢,截的图不能分享呢
我把截图显示出来试试
这种方式有白屏么?如果没有,那就解决不能分享的问题,我记得论坛里个压缩图片的帖子(忘了在哪看到的了),
不过我有个想法,你可以试试(不知道是否可行,因为我的项目没用到这些,我只是提供一些思路)
把载完的图,保存到cc.Sprite里,然后改变大小,等设置,(然后可能还要再载一次图,这个不确定),然后把sprite的图保存起来,用这个图去分享
不知道是否可行,如果试过了,希望给我个反馈~~
已经试过了,还是白色的背景,只能截出两个按钮
不能直接截canvas节点,只能截子节点,刚刚试了几次,只有子节点才能完整截出来,官方开发人员说这个对象打算废弃呢,以后会有替代方案
那就在canvas里加个root节点,载这个节点~
我的也是一片惨白,一样的版本,楼主怎么解决的,只能加一个根结点了吗?
不要截canvas节点,可以截他的子节点
前面搞错了,截图一片白是因为没加后面两参数 cc.Texture2D.PIXEL_FORMAT_RGBA8888, gl.DEPTH24_STENCIL8_OES
var texture = cc.RenderTexture.create(Math.floor(size.width), Math.floor(size.height), cc.Texture2D.PIXEL_FORMAT_RGBA8888, gl.DEPTH24_STENCIL8_OES);
截图出现背景变白是因为碰到有mask组件的节点的时候,就会出现变白的情况,所以必须加上cc.Texture2D.PIXEL_FORMAT_RGBA8888, gl.DEPTH24_STENCIL8_OES这两参数
还有就是微信分享图片时,略缩图不能大于32kb不然调不起微信分享
呃。。。这两个参数原来你没有试呀。。。
还有,那你是怎么把截的图缩小的?是用了我说的那个办法么?
直接改变原图的分辨率,就可以改变略缩图的大小呢,
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 60, 60, true);
web么?cocos 没 Bitmap 这个类啊