Cocos2d-x截屏及设置图片尺寸方法

下例是http://www.maiziedu.com/course/7/的获取截屏的方法:

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);  

}

如何用OC的UIGraphicsBeginImageContext获取UIView转化成UIImage.下面是ios方法:

-(void)screenShot:(CGRect)rect{
// 开始设置截屏区域
UIGraphicsBeginImageContextWithOptions(rect.size, YES, 0);
renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

// 获取image,可以根据需要进行尺寸修改  
CGImageRef imageRef = viewImage.CGImage;  
CGImageRef imageRefRect =CGImageCreateWithImageInRect(imageRef, rect);  
UIImage *image =  initWithCGImage:imageRefRect];  
  
// 保存图片到相册, 这里会提示用户授权,不需要保存的话,可以取消  
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);  
  
// 获取Documents目录  
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
NSString *documentsDirectory = ;  
NSString *savedImagePath = ;  
  
// 保存image到Documents目录  
NSData *imageData = UIImagePNGRepresentation(image);  
;  
CGImageRelease(imageRefRect);  

}