智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...
随笔 - 991, 文章 - 0, 评论 - 27, 阅读 - 341万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

cocos2d-x如何截屏并保存图片

Posted on   Bill Yuan  阅读(5241)  评论(0编辑  收藏  举报

转自:http://blog.csdn.net/wolfking_2009/article/details/11022693#

复制代码
static void ScreenShoot()
{
    CCSize size = CCDirector::sharedDirector()->getWinSize();  
    //定义一个屏幕大小的渲染纹理  
    CCRenderTexture* pScreen = CCRenderTexture::create(size.width,size.height, kCCTexture2DPixelFormat_RGBA8888);  
    //获得当前的场景指针  
    CCScene* pCurScene = CCDirector::sharedDirector()->getRunningScene();  
    //渲染纹理开始捕捉  
    pScreen->begin();  
    //当前场景参与绘制  
    pCurScene->visit();  
    //结束捕捉  
    pScreen->end();  
    //保存为png
    pScreen->saveToFile("XXXXXX.png", kCCImageFormatPNG);  
    //保存为jpg
    pScreen->saveToFile("XXXXXX.jpg", kCCImageFormatJPEG);  
     CC_SAFE_DELETE(pScreen); 
}
复制代码

有人问这个是保存到哪儿去了。这个是写出文件,所以应该是保存到写出路径下面,翻看了下源码,果然是。写出路径为CCFileUtils::sharedFileUtils()->getWritablePath(),字面理解,这个是可写出的路径,不同平台路径也不同,不过可以通过上面的方法去获取这个路径~~~

想具体了解各个平台的写出路径,可以去看看源码。

win32平台的话,如果debug会生成到exe输出的那个路径,release的话,会生成到c盘用户下面的项目下面~

如果大家有其他的自定义写出文件,可以直接指定路径到CCFileUtils::sharedFileUtils()->getWritablePath()下面

(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
历史上的今天:
2009-12-28 程序英语
点击右上角即可分享
微信分享提示