关于好多人都在发帖说不知屏幕截图如何截。网上的一大堆博客都是在说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 screenfailed.");
}
}, "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更新之后估计也很少人使用了,这里也不再详细说明。
效果图