Cocos2d-x 截图功能

2.x-3.x版本                 //获取屏幕尺寸  

      CCSize size = CCDirector::sharedDirector()->getWinSize();

      //使用屏幕尺寸初始化一个空的渲染纹理对象  

      CCRenderTexture* texture = CCRenderTexture::create((int)size.width, (int)size.height);

      //设置位置      

      texture->setPosition(ccp(size.width/2, size.height/2));

      //开始获取      

      texture->begin();

      //遍历场景节点对象,填充纹理到texure中  

      CCDirector::sharedDirector()->getRunningScene()->visit();

      //结束获取  

      texture->end();

      //保存为PNG图,Win32/Debug目录下  

      texture->saveToFile("screenshot.png", kCCImageFormatPNG);

3.x-3.2x版本       Image::Format format;

      //进行后缀判断  

      if(std::string::npos != fileName.find_last_of(".")){

        auto extension = fileName.substr(fileName.find_last_of("."),fileName.length());

        if (!extension.compare(".png")) {

            format = Image::Format::PNG;

        else if(!extension.compare(".jpg")) {

            format = Image::Format::JPG;

        else{

            log("cocos2d: the image can only be saved as JPG or PNG format");

            return;

        }

    else {

        log("cocos2d: the image can only be saved as JPG or PNG format");

        return ;

    }

    //获取屏幕尺寸,初始化一个空的渲染纹理对象  

      auto renderTexture = RenderTexture::create(getWinSize().width, getWinSize().height, Texture2D::PixelFormat::RGBA8888);

      //清空并开始获取  

      renderTexture->beginWithClear(0.0f, 0.0f, 0.0f, 0.0f);

      //遍历场景节点对象,填充纹理到RenderTexture中  

      getRunningScene()->visit();

      //结束获取  

      renderTexture->end();

      //保存文件  

      renderTexture->saveToFile(fileName , format);

      //使用schedule在下一帧中调用callback函数  

      auto fullPath = FileUtils::getInstance()->getWritablePath() + fileName;

      auto scheduleCallback = [&,fullPath,callback](float dt){

          callback(fullPath);

      };

      auto _schedule = getRunningScene()->getScheduler();

      _schedule->schedule(scheduleCallback, this, 0.0f,0,0.0f, false"screenshot");

3.2x以后  void Util::captureScreen(const std::function<void(boolconst std::string&)>& afterCaptured, const std::string& filename);

时间: 2024-10-24 17:55:27

Cocos2d-x 截图功能的相关文章

canvas与html5实现视频截图功能

这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上已经加载完成了这个视频,这样才能够方便的对其操作.如果使用下面直接嵌入<video>标签的方式: 1 2 3 4 5 <video loop controls id="testmp4" width="500" height="400"

安卓开发_实现截图功能

4-17号在360云盘提供了 群雄兵法APP的下载,将其作为测试版,在短短10天内便下载量超过1000,虽说不是很高,但是也证明我一个月的努力是值得的. 这两天游戏更新了,我也将推出最新的版本,在原来的测试版本的基础上,修改了一些内容的错误,优化了部分界面,添加了武将生平介绍,武将成长值等资料. 因为广大的用户提出装备模拟之后无法保存的问题,我在自己所学的基础上进行的解决,但是无奈没有解决成功,于是乎先用截图功能来实现装备模拟后的属性保存吧. 网上百度了很多,大部分相当复杂,对于我这个水平来说,

截图功能的简单实现

//截图功能的实现 //1.建立一个bitmapContext UIGraphicsBeginImageContext(self.view.bounds.size); //2.获取bitmapContext CGContextRef context = UIGraphicsGetCurrentContext(); //3.把self.view.layer图层的全部内容渲染到bitmapContext上去. //截取当前图层的一部分 UIRectClip(CGRectMake(100, 100,

C#软件开发实例.个人定制自己的屏幕抓图工具(八)加入了截图功能键盘

章文件夹 (一)功能概览 (二)创建项目.注冊热键.显示截图主窗体 (三)托盘图标及菜单的实现 (四)基本截图功能实现 (五)针对拖拽时闪烁卡顿现象的优化 (六)加入配置管理功能 (七)加入放大镜的功能 (八)加入键盘操作截图的功能 (九)使用自己定义光标,QQ截图时的光标 (十)在截图中包括鼠标指针形状 尽管加入了放大镜的功能,可是在进行像素级的定位时,还是不easy精确定位,在用鼠标操作时要改变一两个像素的位置还是有些困难的. 处理键盘按下事件 /// <summary> /// 处理键盘

自定义ImageView实现局部截图功能

1.前言 最近在做一个能够自选区域进行局部截图的功能,接下来,会给大家讲解,整个截图的实现过程.笔者这边实现的自选区域的形状是矩形,读者如果有需要,可以根据我给大家讲解的思路,修改成适合自己的截图工具.先来看看效果图 2.效果图 这里的图片是来自笔者对webView的截图产生的,读者可以根据自己的需要,替换上面的图片. 通过拖拽四条边框,可以实现屏幕的局部截图: 拖拽之后,只有需要截图的部分才会高亮显示,其余部分用遮罩掩盖.笔者实现的拖拽四条边都可以任意拖拽,并不一定要正方形或者长方形.也可以如

HTML5 CSS3 诱人的实例 :模仿优酷视频截图功能

一般的视频网站对于用户上传的视频,在用户上传完成后,可以对播放的视频进行截图,然后作为视频的展示图.项目中也可以引入这样的功能给用户一种不错的体验,而不是让用户额外上传一张展示图. 效果图: 看起来还是很不错,下面我给大家分析下,极其核心代码很简单: _canvas = document.createElement("canvas"); _ctx = _canvas.getContext("2d"); _ctx.fillStyle = '#ffffff'; _ctx

IOS VLC编译步骤(包含移植和截图功能)

http://blog.csdn.net/Kan_Crystal/article/details/40424673 一.下载源码 先到VLC官网将源码下载到本机,以下链接为官网编译操作地址:https://wiki.videolan.org/IOSCompile/ 将终端打开执行以下命令 (建议使用VPN) : git clone git://git.videolan.org/vlc-ports/ios.git 代码下载完成后将对代码进行编译: (Release):sh compileVLCfo

Unity3D截图功能总结,并保存在指定的文件夹

快过新年了,一直在加班赶项目,没时间写博客,今天上班最后一天,就休息过年了,将我强几天在做一个截图功能分享出来,网上查了很多,但是都是在Unity Editor下好使,能截图,并显示出来,但是,在Android下,截图成功,并能显示出来,但是就是存不到手机相册中,找了很多原因不知道怎么回事,查阅各种资料最终解决了.我总结了一下,我用过的方法,希望大家 能够用的上. 第一种方法: 使用Application类下的CaptureScreenshot方法.但是我觉得这并不好用,不随意.不能针对某一个相

【独立开发者er Cocos2d-x实战 006】使用Cocos2dx 实现截图功能

今天台风"灿鸿"来袭,博主默默在家码代码.废话不多说,今天我们要讲的就是截图. Cocos2dx把不同版本实现截图方式不同,我用的是Cocos2dx3.4版本.如果你的版本是Cocos2dx3.2以后的,都是可以用这个方式的,如果是Cocos2dx3.2以前,请参考: 比较Cocos2d-x v2.x与v3.x的截图功能 Cocos2d-x3.1及3.2实现截屏功能 cocos2dx之保存截屏图片 开门见山,直接上代码: const std::string strPath = &quo

Selenium2学习-023-WebUI自动化实战实例-021-获取浏览器显示区域大小,通过 WebDriver 截图功能

之前的博文 020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小) 简述了通过 JavaScript 获取浏览器显示区域大小,此文将简述另一种获取浏览器显示区域大小的方法,即通过 WebDriver 的截图功能,获取显示区域的截图,通过截图的大小获取浏览器显示区域的大小. 直接上码了,敬请小主们参阅,若有不足之处,敬请大神指正,不胜感激! 1 /** 2 * Get width and height about display screen area