关于好多人都在发帖说不知屏幕截图如何截。网上的一大堆博客都是在说2.x的,今天阳光明媚,就对3.x和2.x两者的使用方法就行浅谈。
3.x版本的屏幕截图实现:
在3.2 alpha0版本,utils::captureScreen()方法被加入用于保存屏幕截图。相对于2.x中使用截图相对起来比较轻松就能直接实现。
void captureScreen(const std::function<void(bool,const std::string&)>& afterCaptured,const std::string& filename);
第一参数用于回调,第二参数为图片文件名或者以绝对路径表示。接下来我们来看看该如何对utils类中的captureScreen进行实现。
utils::captureScreen([=](boolsucceed,const std::string &fileName){ //输出文件存放的路径 log("%s",fileName.c_str()); if (succeed) { // 显示屏幕截图 auto sp = Sprite::create(fileName); addChild(sp); Size s =Director::getInstance()->getWinSize(); sp->setPosition(s.width / 2,s.height / 2); sp->setScale(0.25); } else { //屏幕截图失败 log("Capture screen@R_301_159@."); } },"myTest.png");
2.x版本的屏幕截图实现
auto size=Director::getInstance()->getVisibleSize(); //指定在屏幕上截图范围 auto texturre =RenderTexture::create(size.width,size.height); texturre->begin(); Director::getInstance()->getRunningScene()->visit(); texturre->end(); if (texturre->saveToFile("screeImg.png","png")) { log("success!"); }2.x上的用法估计在3.x更新之后估计也很少人使用了,这里也不再详细说明。
效果图