调用cc.RenderTexture 即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 --需要截的屏幕大小 local render_texture = cc.RenderTexture:create(640,1136) --开始截屏 render_texture:begin() --截self.node_container包含的内容 self.node_container:visit() --关闭 render_texture:endTolua() --调用 local photo_texture = render_texture:getSprite():getTexture() local sprite_photo = cc.Sprite:createWithTexture(photo_texture) --截屏后的sprite_photo为原始图片沿y轴翻转后的样子。若需要原图,调用如下函数. sprite_photo:flipY() local result = render_texture:savetofile("share.png",cc.IMAGE_FORMAT_PNG) -- savetofile函数会默认添加根路径。 if not result then print("save file Failed") end
注:若需要让某些图片强制渲染,调用sprite:visit()方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 @H_404_167@ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //C++对应的RenderTexture类的savetofile方法。bool RenderTexture::savetofile(const std::string& filename,Image::Format format,bool isRGBA) { CCASSERT(format == Image::Format::JPG || format ::PNG,"the image can only be saved as JPG or PNG format"); if (isRGBA && format ::JPG) cclOG("RGBA is not supported for JPG format"); //保存图片文件的路径 std::string fullpath = fileUtils::getInstance()->getWritablePath() + filename; //初始化将纹理保存到文件的自定义渲染指令 _savetofileCommand.init(_globalZOrder); //设置自定义渲染指令的回调函数 _savetofileCommand.func = CC_CALLBACK_0(RenderTexture::onSavetofile,this,fullpath,isRGBA); Director->getRenderer()->addCommand(&_savetofileCommand); return true; }@H_404_167@ @H_404_167@ 总结
以上是内存溢出为你收集整理的quick cocos 截屏并保存全部内容,希望文章能够帮你解决quick cocos 截屏并保存所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)