http://blog.csdn.net/ganpengjin1/article/details/19088921
我们要保存当前的运行的scene的截图的话,我用到CCRenderTexture,看例子代码:
- CCSize size = CCDirector::sharedDirector()->getWinSize();
- CCRenderTexture *screen = CCRenderTexture::create(size.width, size.height);
- CCScene *scene = CCDirector::sharedDirector()->getRunningScene();
- screen->begin();
- scene->visit();//将当前的整个scene绘出来
- screen->end();
- screen->saveToFile("MyCurScene.png", kCCImageFormatPNG);
然后我们再看后面的saveToFile源码:
- bool CCRenderTexture::saveToFile(const char *fileName, tCCImageFormat format)
- {
- bool bRet = false;
- CCAssert(format == kCCImageFormatJPEG || format == kCCImageFormatPNG,
- "the image can only be saved as JPG or PNG format");
- CCImage *pImage = newCCImage(true);
- if (pImage)
- {
- std::string fullpath = CCFileUtils::sharedFileUtils()->getWritablePath() + fileName;//得到保存资源的位置
- bRet = pImage->saveToFile(fullpath.c_str(), true);
- }
- CC_SAFE_DELETE(pImage);
- return bRet;
- }
对于传进来的fileName,内部又调用了下面的函数,通过getWritablePath提供了存储的路径,getWritablePath内部通过不同平台提供不同的路径,于是对于常见的两种平台,有了下面的路径。
- 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所支持的图片格式:
- typedef enum eImageFormat
- {
- kCCImageFormatJPEG = 0,
- kCCImageFormatPNG = 1,
- } tCCImageFormat;
cocos2dx之保存截屏图片的更多相关文章
-
IOS第17天(2,Quartz2D图片剪裁变圆行图,和截屏图片)
**** #import "HMViewController.h" #import "UIImage+Tool.h" @interface HMViewCont ...
-
【玩转cocos2d-x之三十九】Cocos2d-x 3.0截屏功能集成
3.0的截屏和2.x的截屏基本上同样.都是利用RenderTexture来处理,在渲染之前调用call函数,然后调用Cocos的场景visit函数对其进行渲染,渲染结束后调用end函数就可以.仅仅是3 ...
-
pytest框架优化——将异常截屏图片加入到allure报告中
痛点分析: 在做allure定制化的时候,关于附件添加这一块,我们在代码里可以添加我们准备好的附件,这里用图片,通过下面的方法就能实现 allure.attach(file, '图片描述', allu ...
-
完美解决scrollView 截屏图片模糊
UIGraphicsBeginImageContext 首先说明一下UIGraphicsBeginImageContextWithOptions 和UIGraphicsBeginImageCont ...
-
vue中使用html2canvas及解决html2canvas截屏图片模糊问题
最近在项目中用到了html2canvas插件,遇到的一些坑写下来,与大家共勉. html2canvas 官方网站http://html2canvas.hertzen.com/index.html 这 ...
-
Selenium截屏 图片未加载的问题解决--【懒加载】
需求: 截屏后转PDF. 问题: selenium截屏后,图片未加载 如下图: 原因: 网站使用了懒加载技术:只有在浏览器中纵向滚动条滚动到指定的位置时,页面的元素才会被动态加载. 什么是图片懒加载? ...
-
获取camera截屏图片
Camera camera; SpriteRenderer sprRender; Texture2D t2d = New Texture2D(1300, 760, TextureFormat.RGB2 ...
-
[Egret]长按截屏分享、分享截屏图片、本地存储
egret 分享有API可以把一个显示对象树渲染成一个位图纹理,我把它赋值给 HTML 的 Image 元素,就实现了图片的显示,在微信中,通过长按图片可以分享出去.当然在其他浏览器可以保存在本地. ...
-
cocos2dx for lua 截屏功能
cocos2dx的utils类中包含截图功能,使用方法如下: cc.utils:captureScreen(function(successed,outputFile)--第一个参数是截图成功或者失败 ...
随机推荐
-
ProtocolBuffers-3 For Objective C (2)-进阶
先介绍几个常用关键字: equired前缀表示该字段为必要字段,既在序列化和反序列化之前该字段必须已经被赋值.与此同时,在Protocol Buffer中还存在另外两个类似的关键字,optional和 ...
-
git使用2
初始化配置 #配置使用git仓库的人员姓名 git config --global user.name "Your Name Comes Here" #配置使用git仓库的人员em ...
-
mysql source命令导入sql文件效率分析和索引整理
Query OK, 24918 rows affected (0.90 sec)Records: 24918 Duplicates: 0 Warnings: 0 Query OK, 24923 r ...
-
php方法综述除去换行符(PHP_EOL使用变量)
一个小包裹,事实上,不同的平台具有不同的实现.为什么要这样.它可以是一个世界是多样的. 最初unix与世界把它包/n取代,但windows为了体现自己的不同.要使用/r/n,更有意思的是,mac随着/ ...
-
Changing the working directory of VIM
Sometimes we want to open another file in the same folder with current editing file, what we can do ...
-
获取radio的值
随着Jquery的作用越来越大,使用的朋友也越来越多.在Web中,由于CheckBox.Radiobutton .DropDownList等控件使用的频率比较高,就关系到这些控件在Jquery中的操作 ...
-
java基础,集合,HashMap,源码解析
最怕,你以为你懂咯,其实你还不懂: 见贤思齐,看看那些我们习以为常的集合,通过相关定义.源码,思考分析,加深对其的理解,提高编码能力,能做一个略懂的程序员: 做几个我们常用的集合类.开篇HashMap ...
-
ruby中__FILE__,$FILENAME,$PROGRAM_NAME,$0等类似变量的含义
ruby中有4个类似的变量(常量),他们分别是: __FILE__,$FILENAME,$PROGRAM_NAME,$0 他们分别在代码中表示神马呢?我们用实际的例子说明一下: x.rb #!/usr ...
-
激光推送(ios,安卓)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
-
第三十一篇-TextInputLayout(增强文本输入)的使用
效果图: 密码使用的是增强文本输入类型,当密码长度小于6或者密码长度大于10的时候就会给出提示. main.xml 当添加TextInputLayout时,旁边会有一个下载符号,如果点不动,可以右键点 ...