91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cocos2dx[3.2](18)——屏幕截圖ScreenShot

發布時間:2020-07-05 10:52:25 來源:網絡 閱讀:10666 作者:shahdza 欄目:開發技術

【嘮叨】

    屏幕截圖有兩種方式:

    (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::PNGImage::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<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"



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

内江市| 体育| 乌拉特后旗| 丰宁| 托克托县| 汽车| 九寨沟县| 镇巴县| 江油市| 桐城市| 嘉荫县| 延安市| 崇义县| 南岸区| 土默特左旗| 仙桃市| 兰西县| 永顺县| 儋州市| 宜兰市| 泽州县| 望奎县| 龙江县| 石门县| 湖南省| 封丘县| 韶关市| 沅陵县| 五指山市| 黔西县| 聊城市| 平原县| 福清市| 彭泽县| 壶关县| 嘉义县| 仁布县| 临邑县| 南安市| 木兰县| 梁河县|