Cocos2dx-截屏并设立图片尺寸

Cocos2dx-截屏并设置图片尺寸

猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢!

原文地址: http://www.cocos2dev.com/?p=522

前几天添加微信图片分享的时候,发现全屏截图超出了微信的数据包大小,所以截屏的时候可以考虑缩小尺寸到0.5倍。
下面的截屏代码:

void LHUtil::screenShoot()
{
    Size visibleSize = Director::getInstance()->getVisibleSize();
    
    //定义一个屏幕大小的渲染纹理
    RenderTexture* renderTexture = RenderTexture::create(visibleSize.width * .5, visibleSize.height * .5, Texture2D::PixelFormat::RGBA8888);

    Scene* curScene = Director::getInstance()->getRunningScene();
    Point ancPos = pCurScene->getAnchorPoint();

    //渲染纹理开始捕捉
    renderTexture->begin();

    // 缩小屏幕截屏区域
    curScene->setScale(.5);
    curScene->setAnchorPoint(cocos2d::Point(0, 0));

    //绘制当前场景
    curScene->visit();

    //结束
    renderTexture->end();

    //保存png
    renderTexture->saveToFile("screenshoot.png", Image::Format::PNG);

    // 恢复屏幕尺寸
    curScene->setScale(1);
    curScene->setAnchorPoint(ancPos);
    CC_SAFE_DELETE(curScene);
}