利用Coco2dx提取plist中的图片
发布时间:2020-12-14 20:49:06 所属栏目:百科 来源:网络整理
导读:最近做一个Demo,需要利用序列帧图片,想到Cocos2dx能够解析plist文件获取打包后图片中的小图片,就想如果Cocos2dx能够提供保存精灵/纹理到文件中的方法,那么就可以将plist文件中的小图片提取出来。果不其然,RenderTexture类提供了saveToFile方法,用于将
最近做一个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::RGBA8888); render->setSprite(sprite); //填充纹理 render->beginWithClear(0,0); sprite->visit(); render->end(); //文件被保存在类似于C:UsersAdministratorAppDataLocalProjectName的路径中 render->saveToFile(filename,Image::Format::PNG); } //从缓存移除plist文件 SpriteFrameCache::getInstance()->removeSpriteFramesFromFile("fish.plist"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |