【RenderTexture】

RenderTexture这个动态纹理类,顾名思义就是可以动态创建纹理图片。

屏幕截图主要步骤:

开始截图:render->begin();

遍历场景:scene->visit();

结束截图:render->end();

保存截图:render->saveToFile(string& filename, Image::Format format);

其中Image::Format为图片格式,可以保存为PNG、或JPG两种格式。

即:Image::Format::PNGImage::Format::JPG

第一种截图方法:

1、截图方法

 

//
void HelloWorld::capture(Ref* sender)
{
CCLOG("ScreenShot"); //获取屏幕尺寸大小
Size winSize = CCDirector::sharedDirector()->getWinSize(); //创建RenderTexture,纹理图片大小为窗口大小winSize
RenderTexture* screen = RenderTexture::create(winSize.width, winSize.height); //屏幕截图
screen->begin(); //开始抓屏
this->getParent()->visit(); //遍历当前场景Scene的所有子节点信息,画入screen中
screen->end(); //结束抓屏 //保存截图
screen->saveToFile("ScreenShot.png", Image::Format::PNG); //保存为PNG格式
//screen->saveToFile("ScreenShot.jpg", Image::Format::JPG); //保存为JPG格式
}
//

  

2、保存路径

Win32  :保存在 Debug.win32/ 目录下。

Android:保存在 /data/data/com.summer.hello/files/ScreenShot.png 。

=================================================================

第二种截图方法;

【utils::captureScreen】

v3.2版本utils::captureScreen()方法被加入用于保存屏幕截图。

1、定义

//
// > afterCaptured :该方法将在捕捉指令后被执行。
// > bool : 捕捉屏幕截图是否成功。
// > string : 截图存储的路径。
// > filename :截图的名字。
// > 可以只是一个文件名。 像这样ScreenShot.png。
// > 也可以是一个绝对路径。像这样/sdcard/ScreenShot.png。
void captureScreen(const std::function<void(bool, const std::string&)>& afterCaptured, const std::string& filename)
//

  

2、截图方法

//
//屏幕截图
void HelloWorld::capture(Ref* sender)
{
CCLOG("ScreenShot");
utils::captureScreen(CC_CALLBACK_2(HelloWorld::afterCapture, this), "ScreenShot.png");
} //截图后执行afterCapture
void HelloWorld::afterCapture(bool succeed, const std::string& outputFile)
{
if (succeed)
{
CCLOG("%s", outputFile.c_str());
//显示截图
Sprite* sp = Sprite::create(outputFile);
sp->setPosition(winSize / 2);
this->addChild(sp);
sp->setScale(0.25); //放缩
}
else
{
CCLOG("Capture screen failed.");
}
}
//

  

3、保存路径

filename可以只是一个文件名(保存到相对路径):像这样 "ScreenShot.png"

filename也可以是一个绝对路径                :像这样 "/sdcard/ScreenShot.png"

cocos2dx 3.x(屏幕截图的两种方法)的更多相关文章

  1. Cocos2d-x 处理双击事件的两种方法

    在cocos2d-x的开发过程中有些时候也是需要用到双击的事件处理,那么由于在cocos2d-x中没有实现对双击的事件的处理,那么我们就需要自己用代码实现. 下面介绍两种方式实现双击事件的处理. (一 ...

  2. windows下获取IP地址的两种方法

    windows下获取IP地址的两种方法: 一种可以获取IPv4和IPv6,但是需要WSAStartup: 一种只能取到IPv4,但是不需要WSAStartup: 如下: 方法一:(可以获取IPv4和I ...

  3. android 之 启动画面的两种方法

    现在,当我们打开任意的一个app时,其中的大部分都会显示一个启动界面,展示本公司的logo和当前的版本,有的则直接把广告放到了上面.启动画面的可以分为两种设置方式:一种是两个Activity实现,和一 ...

  4. [转载]C#读写txt文件的两种方法介绍

    C#读写txt文件的两种方法介绍 by 大龙哥 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char ...

  5. php如何防止图片盗用/盗链的两种方法(转)

    图片防盗链有什么用? 防止其它网站盗用你的图片,浪费你宝贵的流量.本文章向大家介绍php防止图片盗用/盗链的两种方法 Apache图片重定向方法 设置images目录不充许http访问 Apache服 ...

  6. WPF程序将DLL嵌入到EXE的两种方法

    WPF程序将DLL嵌入到EXE的两种方法 这一篇可以看作是<Visual Studio 版本转换工具WPF版开源了>的续,关于<Visual Studio 版本转换工具WPF版开源了 ...

  7. MongoDB实现分页(两种方法)

    1.插入实验数据 偷懒用下samus,100条. ; i < ; i++) { Document doc = new Document(); doc["ID"] = i; d ...

  8. css:图标与文字对齐的两种方法

    (好久没写博客了,这几个月的积累比较零碎,记在本子上,现在开始整理归类) 在平时写页面的过程中,常遇到要把小图标与文字对齐的情况.比如: 总结了两种方法,代码量都比较少. 第一种 对img设置竖直方向 ...

  9. .net中创建xml文件的两种方法

    .net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...

随机推荐

  1. CentOS6.4 安装MongoDB

    1.下载MongoDB(64位) http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz 或 http://pan.baidu.c ...

  2. JS实现屏蔽键盘操作

    第一种:当页面初始加载的时候,屏蔽掉当前页面所有的键盘 $(document).ready(function () { document.body.onkeydown = function (even ...

  3. 不错的判断 UITextView 内容不超过20个字符串的方法

    - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSSt ...

  4. SDL实战,小游戏

    http://www.cppblog.com/sandy/archive/2005/12/28/2219.html sdl1教学 http://kelvmiao.info/sdl-tutorial-c ...

  5. GO语言练习:网络编程 TCP 示例

    1.代码 2.编译及运行 1.网络编程 TCP 示例 simplehttp.go 代码 package main import ( "net" "os" &qu ...

  6. sql分页代码

    //三种sql分页语句 SELECT TOP 分页尺寸 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM Blob ...

  7. 如何使用Apache的ab工具进行网站性能测试

    1.打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具. 2.在Windows系统的命令行下,进入ab.exe程序所在目录,执行ab.exe程 ...

  8. JavaScript笔记——引用类型之Object类型和Function类型

    <JavaScript高级程序设计>中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型 Object类型 创建对象 var person = new ...

  9. [LintCode] Two Sum 两数之和

    Given an array of integers, find two numbers such that they add up to a specific target number. The ...

  10. android-时间选择器和日期选择器

    一.实现动态输入日期和时间 * DataPicker(日历选择器) * DataPicker对象以init()方法指定DatePicker初始的年月日及OnDateChangedListener事件 ...