creator RenderTexture 截屏一片惨白

  • 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的图保存起来,用这个图去分享

不知道是否可行,如果试过了,希望给我个反馈~~

保存到 sprite里的方式可以参照一下这里
http://forum.cocos.com/t/shader/48508/5?u=111923

已经试过了,还是白色的背景,只能截出两个按钮

不能直接截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不然调不起微信分享

1赞

呃。。。这两个参数原来你没有试呀。。。

还有,那你是怎么把截的图缩小的?是用了我说的那个办法么?

直接改变原图的分辨率,就可以改变略缩图的大小呢,
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 60, 60, true);

1赞

web么?cocos 没 Bitmap 这个类啊