初始化渲染纹理
1. CCRenderTexture::create((int)size.width, (int)size.height);
2. CCRenderTexture::create((int)size.width, (int)size.height, kCCTexture2DPixelFormat_RGBA8888);
以上两种方式都可能造成截屏不全,因为使用了滚动层UIScrollView,效果如下:
使用下面的初始化方式可以解决:
CCRenderTexture* texture = CCRenderTexture::create((int)size.width, (int)size.height, kCCTexture2DPixelFormat_RGBA8888,0x88F0);
具体截屏方法如下:
//获取屏幕尺寸
CCSize size = CCDirector::sharedDirector()->getWinSize();
//定义一个屏幕大小的渲染纹理
CCRenderTexture* texture = CCRenderTexture::create((int)size.width, (int)size.height, kCCTexture2DPixelFormat_RGBA8888,0x88F0);
//设置位置
texture->setPosition(ccp(size.width/2, size.height/2));
//开始获取
texture->begin();
//遍历场景节点对象,填充纹理到texure中
CCDirector::sharedDirector()->getRunningScene()->visit();
//结束获取
texture->end();
//保存为png图,Win32/Debug目录下
texture->saveToFile("screenshot.png", kCCImageFormatPNG);
//保存为jpg图,Win32/Debug目录下
//texture->saveToFile("screenshot.jpg", kCCImageFormatJPEG);
获取存储截图的根路径:(在安卓和iOS下具体路径不同,但可用此方法获取)
CCFileUtils::sharedFileUtils()->getWritablePath();
网友评论