最近做一个Demo,需要利用序列帧图片,想到Cocos2dx能够解析plist文件获取打包后图片中的小图片,就想如果Cocos2dx能够提供保存精灵/纹理到文件中的方法,那么就可以将plist文件中的小图片提取出来。果不其然,RenderTexture类提供了saveToFile方法,用于将纹理保存到文件中,下面直接上代码以供以后参考。
void GameScene::SaveFiles()
{
//加载plist文件到缓存
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("fish.plist");
std::stringstream ss;
std::string filename;
//遍历序列帧图片
for (int i=0; i<10; i++)
{
ss.clear();
ss.str("");
ss << "fish_" << (i + 1) << ".png";
filename = ss.str();
//获取精灵
auto sprite = Sprite::createWithSpriteFrameName(filename);
sprite->setAnchorPoint(Vec2::ZERO);
float width = sprite->getContentSize().width;
float height = sprite->getContentSize().height;
//创建渲染纹理
auto render = RenderTexture::create(width, height, Texture2D::PixelFormat::RG