cocos2dx 3.x(屏幕截图的两种方法)

【RenderTexture】

    RenderTexture这个动态纹理类,顾名思义就是可以动态创建纹理图片。

    屏幕截图主要步骤:

        > 开始截图:render->begin();

        > 遍历场景:scene->visit();

        > 结束截图:render->end();

        > 保存截图:render->saveToFile(string& filename, Image::Format format);

    其中Image::Format为图片格式,可以保存为PNG、或JPG两种格式。

    即:Image::Format::PNGImage::Format::JPG

 

 

第一种截图方法:

1、截图方法

 

//
void HelloWorld::capture(Ref* sender)
{CCLOG("ScreenShot");//获取屏幕尺寸大小Size winSize = CCDirector::sharedDirector()->getWinSize();//创建RenderTexture,纹理图片大小为窗口大小winSizeRenderTexture* 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<void(bool, const std::string&)>& 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"

 

 

 

转载于:https://www.cnblogs.com/luorende/p/6063951.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL小技巧,动态输出本周各天日期

SET DATEFIRST 1; --设置周一为每周第一天 SELECT DATEFIRST;WITH w AS(SELECTCONVERT(varchar(10),T.[Date],120) AS [Date],DATENAME(weekday, T.[Date] ) AS [Week],DATEPART(WK, T.[Date]) AS WeekIndexFROM(SELECTDATEADD(DAY, number, DATEADD(wk, DATEDIFF(wk, 0, get…

开源的价值观与文化的传递

| 作者&#xff1a;Sharan Foga, Apache 软件基金会董事&#xff08;2021 届、2022 届&#xff09;&#xff0c;曾亲身来到 2019 中国开源年会&#xff08;COSCon19&#xff09;以本文内容发表主题演讲。| 翻译&#xff1a;刘天栋.Ted&#xff0c;徐红伟.stronghx| 审阅&#x…

用python来更改小伙伴的windows开机密码,不给10块不给开机

今天教大家用python脚本来控制小伙伴们windows电脑的开机密码。没错就是神不知鬼不觉&#xff0c;用random()随机生成的密码&#xff0c;只有你自己知道哦~ 代码呢分两部分&#xff0c;一部分是client端跟server端两个。你只需要想办法让小伙伴运行你的client端脚本就OK啦。不过…

Vue中@click.stop与@click.prevent

Vue中click.stop与click.prevent 一、click.stop 问题&#xff1a;父元素中添加了一个click事件&#xff0c;其下面的子元素中也添加了click事件&#xff0c;此时&#xff0c;我想点击子元素获取子元素的点击事件&#xff0c;但却触发的是父元素的事件&#xff1a; <view cl…

ES6 promise

如何使用promise对象? 参考连接&#xff1a; http://es6.ruanyifeng.com/#docs/promise 转载于:https://www.cnblogs.com/taoshengyijiuai/p/6963279.html

巧用ThreadPool.QueueUserWorkItem实现接口二次调用

背景最近做了个项目有个接口涉及到批量计算的问题&#xff0c;耗时比较长。大家都知道&#xff0c;接口等待时间太长肯定是不可取的。那么只能做异步处理了&#xff1b;但是问题来了这个项目没有什么消息队列、redis之类的使用&#xff0c;本着怎么简单怎么来的思路&#xff0c…

el-upload 防止选择上传重复文件

<el-uploadref"uploadRef"multipledragaction"":auto-upload"false":file-list"msgPara.MsgFileList":on-change"handleFileChanged" ><el-button type"primary">选择文件</el-button> </el…

jmete 学习--基础之名词解释

一.jmeter 体系结构 1.名词解释 元件 jmemter工具菜单中的一个子菜单&#xff0c;如http请求&#xff0c;事务控制器等&#xff0c;就是一个元件。 组件 一组元件的集合&#xff0c;比如逻辑控制器中有事务控制器&#xff0c;仅一次控制器等&#xff0c;这些都是hi元件&#x…

Testing - 软件测试知识梳理 - 自动化测试

软件开发的过程是一个持续集成和改进的过程&#xff0c;而每一次的改进都可能引进新bug,因此当软件的一部&#xff0c;或者全部修改时&#xff0c;都需要对软件产品重新进行测试。 其目的是要验证修改后的产品是符合需求的&#xff0c;而当没有自动化测试代码时&#xff0c;往往…

Virtual script not found, may missing <script lang=“ts“> / “allowJs“: true / jsconfig.json.volar

解决办法&#xff1a; 在 jsconfig.json 配置文件中设置 "allowJs": true 如果没有jsconfig.json文件&#xff0c;直接在项目要目录创建一个&#xff0c;添加如下配置内容即可&#xff1a; /** Title: This is a file for ……* Author: JackieZheng* Date: 2022…

协鑫集成“熄灯工厂”装上ET工业大脑,验证订单命中率可提高3.99%

4月26日的云栖大会南京峰会&#xff0c;协鑫集成宣布&#xff0c;与阿里云ET工业大脑合作后&#xff0c;通过人工智能验证的订单命中率可提高3.99%。 协鑫集成是全球一线组件制造商&#xff0c;积极致力于推进自主创新与智能制造&#xff0c;综合运用信息通讯、物联网、大数据决…

pip install mysql-connector 安装出错

一、MySQL Connector/Python 2.2.3 的变化&#xff1a; 之前 mysql 官方说MySQL Connector/Python 是纯python语言写的&#xff0c;但是呢&#xff01; 这个问题在2.2.3中变天了&#xff1b; 以下是MySQL Connector/Python 2.2.3 是变更记录 Changes in MySQL Connector/Python…

2022世界传感器大会 | 龙芯中科发布龙芯2K0500多功能SoC芯片及解决方案

8月21日&#xff0c;由工业和信息化部、中国科学技术协会、河南省人民政府共同主办的2022世界传感器大会在郑州开幕&#xff0c;众多诺奖、图灵奖获得者、海内外院士和专家学者出席&#xff0c;全球传感器领域最具影响力的相关企业参加。龙芯中科董事长胡伟武在大会开幕式发表主…

Vue3 配置config文件,打包后随意修改配置,无需重新打包和重启

在public目录创建config.json文件&#xff0c;名字随便起。 {"AppVersion": "1.0","AppTitle": "这里是程序名称" } 修改AppTitle&#xff1a; {"AppVersion": "1.0","AppTitle": "这里是修改后的…

TypeError: pyqtSignal must be bound to a QObject

super(MyQObject, self).__init__() #如果写了__init__()函数&#xff0c;这一行一定要有&#xff0c;否则会出现 #TypeError: pyqtSignal must be bound to a QObject, not MyQObject转载于:https://www.cnblogs.com/CGAlpha/p/6971527.html

Jmeter-3.0的源码导入eclipse并执行

最近在研究jmeter二次开发&#xff0c;所以需要先jmeter导入Eclipse&#xff0c;后续还需要学习jmeter源码以及二次开发的相关知识&#xff0c;到时候也会分享出来&#xff0c;下面是jmeter导入Eclipse的过程首先去官网下载apache-jmeter-3.0的源码包和release包&#xff08;二…

在Vue3中使用Element Plus Icon图标的几种方式

安装 Element Plus $ npm install element-plus/icons在main.js 引入 import * as ElIcon from element-plus/icons-vueObject.keys(ElIcon).forEach((key) > {app.component(key, ElIcon[key]) }) 方式一&#xff1a;通过 icon"el-icon-plus" 使用 <!-- …

Qt 打印机操作

2019独角兽企业重金招聘Python工程师标准>>> 配置文件加入打印机支持&#xff1a; QT printsupport 1、打印图片 打印图片所需头文件&#xff1a; #include <QPixmap> #include <QPrinter> #include <QPainter> 打印图片代码&#xff1a; QStrin…

centOS7 安装mysql 设置远程访问

CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件&#xff0c;需要去官网上下载 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm# rpm -ivh mysql-community-release-el7-5.noarch.rpm# yum install mysql-community-server成功安装之后…

spark集群详细搭建过程及遇到的问题解决(四)

在spark集群详细搭建过程及遇到的问题解决&#xff08;三&#xff09;中&#xff0c;我们将讲述了hadoop的安装过程&#xff0c;在本文中将主要讲述spark的安装配置过程。sparkmaster:~/spark$ cd hadoop sparkmaster:~/spark/hadoop$ cd $SPARK_HOME/conf sparkmaster:~/spark…