分享屏幕截图ScreenShot方法总结
屏幕截图ScreenShot方法总结
比较Cocos2d-x 2.x版本与3.x版本屏幕截图的两种方式:
(1)使用RenderTexture:这是在2.x版本时最常用的的截图方法。
(2)使用utils::captureScreen() :在3.2版本中新增的截图方法。
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、截图方法
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& 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”。
分享屏幕截图ScreenShot方法总结相关推荐
- 百度网盘Mac版如何分享链接?创建百度网盘 for Mac分享链接的方法
想把自己百度网盘里的数据分享给朋友,该怎么操作呢?有很多朋友使用百度网盘,可以很轻松的自己的文件上传到网盘上,并可跨终端随时随地查看和分享.今天给大家分享的是创建百度网盘 for Mac分享链接的方法 ...
- 使用美图秀秀制作电子喜帖:分享幸福新方法
使用美图秀秀制作电子喜帖:分享幸福新方法 不知不觉我们都长大了,毕业了.工作了,要结婚了......随着我们的成长,亲朋好友也都遍布各地.那么,如何将结婚喜帖送达他们手上是个难题:邮寄传统的纸质喜帖很 ...
- 大家分享——恢复视力方法
<script type="text/javascript"> </script> <script src="http://pagead2. ...
- 关于泡泡龙游戏的一点儿总结,以及分享一个好方法
嗨,大家好,我是小蚂蚁. 不少人都问过这样的一个问题:你做一个游戏需要多长时间?通常我的回答都是:不好说,看情况. 游戏是一种虚拟的产品,它很难被量化,也很难像工厂流水线生产实体产品一样的去生产.因为 ...
- 如何给电脑文件加密?分享四种方法!
想要给文件设置加密,防止他人查看自己的文件,分享四种方法给电脑文件加密. 一:隐藏文件 如果不想给文件设置密码,我们可以将文件隐藏起来,这样设置之后,文件就不会再显示在文件夹里了,想要隐藏文件,我们只 ...
- php实现微信公众号分享,php实现微信公众号自定义分享内容的方法
这篇文章主要介绍了php版微信公众号自定义分享内容实现方法,结合实例形式分析了php实现微信公众号自定义分享内容的接口调用与相关使用技巧,需要的朋友可以参考下 微信公众号号在手机中通过api接口可以实 ...
- 百度网盘Mac版如何生成链接分享和密码?Mac版创建百度网盘分享链接的方法
想把自己百度网盘里的数据分享给朋友,该怎么操作呢?有很多朋友使用百度网盘,可以很轻松的自己的文件上传到网盘上,并可跨终端随时随地查看和分享.下面Mac down小编就给大家介绍一下创建百度网盘 for ...
- u盘删除的文件怎么找回?分享5种方法恢复数据
u盘小小一个,非常方便携带,能保存很多文件数据,很适合日常生活和工作中使用.但是在使用过程中,由于各种原因,我们有时会不小心把数据给删除了,或者把不需要的文件定期删除.这时会产生一个问题,u盘删除的文 ...
- php实现微信公众号分享,php版微信公众号自定义分享内容实现方法
搜索热词 PHP版微信公众号自定义分享内容实现方法,希望对您有用.如果有疑问,可以联系我们. PHP版微信公众号自定义分享内容实现方法.分享给大家供大家参考,具体如下: 自定义分享内容了,下面我们来看 ...
最新文章
- python async await报错_Python 3.7.7 发布 支持async并await现在为保留关键字
- 在使用Reference Source调试.Net 源代码时如何取消optimizations(代码优化)-翻译
- Vuex 2.0 源码分析
- 新博客地址: https://sanzo.top
- kotlin学习之类的扩展(四)
- uml活动图 各个功能的操作流程和分支_UML建模之活动图介绍(Activity Diagram)
- 计算机专业可以评机械工程师,机械工程师个人评价
- leetcode 275. H 指数 II
- Go实现查找目录下(包括子目录)替换文件内容
- Rabbit MQ 延迟插件rabbitmq_delayed_message_exchange的安装
- 文件管理之文件后缀名识别
- 方维短信接口常见的问题汇总
- 亚里士多德对于知识的分类
- 数据结构与算法分析(十七)--- 怎么用回溯剪枝高效穷举所有可行解?
- PAT 1007(简单粗暴)
- 神州优车粗暴裁员:人与人之间最起码的尊重呢?
- PhysX官方手册翻译(Dynamics)
- PHP中打印九九乘法表
- mysql表id的数据类型是_MySQL表中的数据类型
- KCF核相关滤波跟踪