http://blog.csdn.net/ganpengjin1/article/details/19088921

我们要保存当前的运行的scene的截图的话,我用到CCRenderTexture,看例子代码:

  1. CCSize size = CCDirector::sharedDirector()->getWinSize();
  2. CCRenderTexture *screen = CCRenderTexture::create(size.width, size.height);
  3. CCScene *scene = CCDirector::sharedDirector()->getRunningScene();
  4. screen->begin();
  5. scene->visit();//将当前的整个scene绘出来
  6. screen->end();
  7. screen->saveToFile("MyCurScene.png", kCCImageFormatPNG);

然后我们再看后面的saveToFile源码:

  1. bool CCRenderTexture::saveToFile(const char *fileName, tCCImageFormat format)
  2. {
  3. bool bRet = false;
  4. CCAssert(format == kCCImageFormatJPEG || format == kCCImageFormatPNG,
  5. "the image can only be saved as JPG or PNG format");
  6. CCImage *pImage = newCCImage(true);
  7. if (pImage)
  8. {
  9. std::string fullpath = CCFileUtils::sharedFileUtils()->getWritablePath() + fileName;//得到保存资源的位置
  10. bRet = pImage->saveToFile(fullpath.c_str(), true);
  11. }
  12. CC_SAFE_DELETE(pImage);
  13. return bRet;
  14. }

对于传进来的fileName,内部又调用了下面的函数,通过getWritablePath提供了存储的路径,getWritablePath内部通过不同平台提供不同的路径,于是对于常见的两种平台,有了下面的路径。

  1. std::string fullpath = CCFileUtils::sharedFileUtils()->getWritablePath() + fileName;

a.如果是VS环境下的话,会存放在跟项目相关的Debug.win32目录下;

b.如果是在Android平台下,会存放在类似这样的一个路径下面/data/data/com.nt.tower/files/cocos2d-x-screenshot.png(这个是我的安卓工程拿到的路径)

这个路径才是我们更关心的,结构类似于这样 /data/data/+PACKAGE+/files/filename(package就是安卓工程的主包名,一般都是com.xx.yy这种)

它的第二个参数是cocos2dx所支持的图片格式:

    1. typedef enum eImageFormat
    2. {
    3. kCCImageFormatJPEG      = 0,
    4. kCCImageFormatPNG       = 1,
    5. } tCCImageFormat;

cocos2dx之保存截屏图片的更多相关文章

  1. IOS第17天(2,Quartz2D图片剪裁变圆行图,和截屏图片)

    **** #import "HMViewController.h" #import "UIImage+Tool.h" @interface HMViewCont ...

  2. 【玩转cocos2d-x之三十九】Cocos2d-x 3.0截屏功能集成

    3.0的截屏和2.x的截屏基本上同样.都是利用RenderTexture来处理,在渲染之前调用call函数,然后调用Cocos的场景visit函数对其进行渲染,渲染结束后调用end函数就可以.仅仅是3 ...

  3. pytest框架优化——将异常截屏图片加入到allure报告中

    痛点分析: 在做allure定制化的时候,关于附件添加这一块,我们在代码里可以添加我们准备好的附件,这里用图片,通过下面的方法就能实现 allure.attach(file, '图片描述', allu ...

  4. 完美解决scrollView 截屏图片模糊

    UIGraphicsBeginImageContext   首先说明一下UIGraphicsBeginImageContextWithOptions 和UIGraphicsBeginImageCont ...

  5. vue中使用html2canvas及解决html2canvas截屏图片模糊问题

    最近在项目中用到了html2canvas插件,遇到的一些坑写下来,与大家共勉. html2canvas  官方网站http://html2canvas.hertzen.com/index.html 这 ...

  6. Selenium截屏 图片未加载的问题解决--【懒加载】

    需求: 截屏后转PDF. 问题: selenium截屏后,图片未加载 如下图: 原因: 网站使用了懒加载技术:只有在浏览器中纵向滚动条滚动到指定的位置时,页面的元素才会被动态加载. 什么是图片懒加载? ...

  7. 获取camera截屏图片

    Camera camera; SpriteRenderer sprRender; Texture2D t2d = New Texture2D(1300, 760, TextureFormat.RGB2 ...

  8. [Egret]长按截屏分享、分享截屏图片、本地存储

    egret 分享有API可以把一个显示对象树渲染成一个位图纹理,我把它赋值给 HTML 的 Image 元素,就实现了图片的显示,在微信中,通过长按图片可以分享出去.当然在其他浏览器可以保存在本地. ...

  9. cocos2dx for lua 截屏功能

    cocos2dx的utils类中包含截图功能,使用方法如下: cc.utils:captureScreen(function(successed,outputFile)--第一个参数是截图成功或者失败 ...

随机推荐

  1. Python-CSS 基础

    css入门 一.架构分析 页面 => div的层级结构 => 具有采用哪些功能标签显示内容 结构层 > 位置层(布局层) > 内容层 二.css引入 - 行间式 <div ...

  2. PYTHON-迭代器,xxx生成式

    一 迭代器1 什么是迭代器 #迭代器即迭代的工具,那什么是迭代呢? #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而 ...

  3. Dubbo入门---搭建一个最简单的Demo框架

    参考文档: https://blog.csdn.net/noaman_wgs/article/details/70214612/

  4. MyEclipse 2017 ci6 安装反编译插件(本人自己摸索的方法,亲测可行)

    注: 本文来源于:Smile_Miracle 的< MyEclipse 2017 ci6 安装反编译插件(本人自己摸索的方法,亲测可行) > 第一步:关闭ME,去一下地址下载jad的反编译 ...

  5. python 全栈开发,Day85(Git补充,随机生成图片验证码)

    昨日内容回顾 第一部分:django相关 1.django请求生命周期 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这 ...

  6. 【C++ Primer | 19】运行类型识别

    运行类型识别 一.使用RTTI dynamic_cast运算符的调用形式如下所示: dynamic_cast<type*>(e) //e是指针 dynamic_cast<type&a ...

  7. P2152 [SDOI2009]SuperGCD 未完成

    辗转相减求a,b的gcd其实可以优化的: 1.若a为偶数,b为奇数:gcd(a,b)=gcd(a/2,b) 2.若a为奇数,b为偶数:gcd(a,b)=gcd(a,b/2) 3.若a,b都是偶数:gc ...

  8. day14--前端HTML、CSS

        HTML是一个裸体的人,CSS穿上华丽的衣服,JS动起来.     HTML 1. -一套规则,浏览器识别的规则 2. 开发者: 学习HTML规则 开发后台程序 - 写HTML文件(充当模板的 ...

  9. KNN分类算法补充

    KNN补充: 1.K值设定为多大? k太小,分类结果易受噪声点影响:k太大,近邻中又可能包含太多的其它类别的点. (对距离加权,可以降低k值设定的影响) k值通常是采用交叉检验来确定(以k=1为基准) ...

  10. BZOJ3064 Tyvj 1518 CPU监控 线段树

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3064 题意概括 一个序列,要你支持以下操作: 1. 区间询问最大值 2. 区间询问历史最大值 3. ...