cocos2dx[3.2](18)——屏幕截图ScreenShot
【嘮叨】
????屏幕截圖有兩種方式:
????(1)使用RenderTexture ? ? ? ? ?:這是在2.x版本時最常用的的截圖方法。
????(2)使用utils::captureScreen() :在3.2版本中新增的截圖方法。
【致謝】
????http://blog.csdn.net/ganpengjin1/article/details/19088921
????http://cn.cocos2d-x.org/article/index?type=wiki&url=/doc/cocos-docs-master/manual/framework/native/wiki/how-to-save-a-screenshot/zh.md
【RenderTexture】
????RenderTexture這個動態紋理類,顧名思義就是可以動態創建紋理圖片。
????屏幕截圖主要步驟:
????????> 開始截圖:render->begin();
????????> 遍歷場景:scene->visit();
????????> 結束截圖:render->end();
????????> 保存截圖:render->saveToFile(string& filename, Image::Format format);
????其中Image::Format為圖片格式,可以保存為PNG、或JPG兩種格式。
????即:Image::Format::PNG、Image::Format::JPG。
1、截圖方法
2、保存路徑
????> Win32 ?:保存在?Debug.win32/?目錄下。
????>?Android:保存在 /data/data/com.summer.hello/files/ScreenShot.png?。
【utils::captureScreen】
????在v3.2版本,utils::captureScreen()方法被加入用于保存屏幕截圖。
????
1、定義
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"。
轉載于:https://blog.51cto.com/shahdza/1560906
總結
以上是生活随笔為你收集整理的cocos2dx[3.2](18)——屏幕截图ScreenShot的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server 分区表的创建方法与
- 下一篇: IOS开发之——颜色设置