cocos2dx[3.2](18)――屏幕截图ScreenShot

cocos2dx[3.2](18)――屏幕截图ScreenShot,第1张

概述【唠叨】     屏幕截图有两种方式:     (1)使用RenderTexture          :这是在2.x版本时最常用的的截图方法。     (2)使用utils::captureScreen() :在3.2版本中新增的截图方法。 【致谢】     http://www.voidcn.com/article/p-psfsykkj-bch.html     http://cn.cocos

【唠叨】

屏幕截图有两种方式:

(1)使用RenderTexture :这是在2.x版本时最常用的的截图方法。

(2)使用utils::captureScreen() :在3.2版本中新增的截图方法。


@H_301_33@【致谢】

http://www.jb51.cc/article/p-psfsykkj-bch.html

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



@H_301_33@【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、截图方法

//voIDHelloWorld::capture(Ref*sender){	cclOG("ScreenShot");	//获取屏幕尺寸大小	SizewinSize=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



@H_301_33@【utils::captureScreen】

v3.2版本utils::captureScreen()方法被加入用于保存屏幕截图。

1、定义

//	//>afterCaptured:该方法将在捕捉指令后被执行。	//>bool:捕捉屏幕截图是否成功。	//>string:截图存储的路径。	//>filename:截图的名字。	//>可以只是一个文件名。像这样ScreenShot.png。	//>也可以是一个绝对路径。像这样/sdcard/ScreenShot.png。	voIDcaptureScreen(conststd::function<voID(bool,conststd::string&)>&afterCaptured,conststd::string&filename)//


2、截图方法

////屏幕截图voIDHelloWorld::capture(Ref*sender){	cclOG("ScreenShot");	utils::captureScreen(CC_CALLBACK_2(HelloWorld::afterCapture,this),"ScreenShot.png");}//截图后执行afterCapturevoIDHelloWorld::afterCapture(boolsucceed,conststd::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("CapturescreenFailed.");	}}//


3、保存路径

filename可以只是一个文件名(保存到相对路径):像这样 "ScreenShot.png"

filename也可以是一个绝对路径 :像这样 "/sdcard/ScreenShot.png"

总结

以上是内存溢出为你收集整理的cocos2dx[3.2](18)――屏幕截图ScreenShot全部内容,希望文章能够帮你解决cocos2dx[3.2](18)――屏幕截图ScreenShot所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1001641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存