Texture的渲染及截屏功能
来源:互联网 发布:如何评价崇祯知乎 编辑:程序博客网 时间:2024/06/06 23:57
我们先准备一张大图,如下:
只看图,表太在意内容啊。
我们的目的就是将这张大图裁剪成一张张的小图并保存下来。
首先,我们要将它裁剪成一张张的小图,小图的大小自己计算哈,我就不告诉你w=Width/5,h=(Height-108)/8的;
然后,将裁剪出来的小图一张张的绘制出来;
最后,将绘制的每一张保存起来。
我怎么这么多话啊,说了这么多,一行代码也写呢,好了,直接上代码:
auto size = Director::getInstance()->getVisibleSize();
const char * pSaveImageFromar = "image_%d_%d_%d.png";
int row = 7;
int col = 4;
int w = 137;
int h = 137;
for (int k = 0; k < 6; k++)
{
auto texturecache = Director::getInstance()->getTextureCache()->addImage(String::createWithFormat("%d.jpg", k)->getCString());
for (int i = 0; i <= row; i++)
{
for (int j = 0; j <= col; j++)
{
auto sp = Sprite::createWithTexture(texturecache, Rect(0 + j + j*w, 108 + i*h + i, w, h)); //裁剪出来的精灵
sp->setPosition(sp->getContentSize().width / 2, sp->getContentSize().height / 2);
const char* pName = String::createWithFormat(pSaveImageFromar, k, i, j)->getCString();
RenderTexture* rrt = RenderTexture::create(w, h);//创建一个对象,用来绘制裁剪出来的精灵,起点是左下角,向右w,向上h,绘制出来的大小
rrt->setPosition(size.width / 2, size.height / 2); //默认绘制出来的默认是放在左下角的 为了方便看到就移到中心了
rrt->begin(); //在这里开始捕捉
sp->visit(); //捕捉的对象
rrt->end(); //捕捉结束
rrt->saveToFile(pName, Image::Format::PNG); //将捕捉到的对象保存起来
}
}
}
这样我们就将裁剪的图片保存下来了,保存路径我们可以进到saveToFile中查看
其中有一行FileUtils::getInstance()->getWritablePath(),我们打印下输出路径就知道保存到哪了。
最终我们就获得了一张张的小图:
酱紫以后就不愁聊天木有表情了吧,将这些都到添加到QQ表情中就OK啦。
当然如果这张大图是用TexturePacker打包的,我们还可以通过Anti_TexturePacker一键将其裁剪。
因此,通过这个我们也很容易举一反三的实现拍照截屏的功能了。
好了,不早了,明天还得码砖。
2016年9月19日 0:58 于苏州。
- Texture的渲染及截屏功能
- /LGC图形渲染/旗帜(waving texture)特效的实现
- 把Android原生的View渲染到OpenGL Texture
- 把Android原生的View渲染到OpenGL Texture
- Texture.height Texture的像素
- 利用Ogre的渲染到材质技术实现Ogre截屏功能
- 利用Ogre的渲染到材质技术实现Ogre截屏功能
- android OpenGL ES实现渲染到透明的纹理 render to transparent texture
- cocos2d开发学习五:精灵节点CCSpriteBatchNode的渲染和纹理集Texture Atlases内存优化
- cocos2d开发学习五:精灵节点CCSpriteBatchNode的渲染和纹理集Texture Atlases内存优化
- webview chromium v51 webgl context video元素渲染到texture上的实现原理
- Render to Texture(渲染到纹理)
- Render to Texture(渲染到纹理)
- 渲染到纹理(render to texture)
- Render to Texture(渲染到纹理)
- 渲染到纹理(Render To Texture, RTT)
- 渲染到纹理(Render to texture):使用FrameBuffer
- 渲染到纹理(Render To Texture, RTT)详解
- lua中的面向对象编程
- Parajumpers Heren online bold be not
- 二维数组排序问题
- 监控Windows 域用户登陆情况 python
- Scrum框架及其背后的原则(上)——Scrum 框架的伪代码描述
- Texture的渲染及截屏功能
- GitHub的GPG签名
- Http和Socket连接区别
- leetcode_[python/java/javascript/C++]_401_Binary Watch(二进制手表)
- user.go
- QQ分享之andriod开发
- 【jzoj4885】【隔壁】
- 关于输出缓冲ob_start()的作用
- 【NOIP模拟题】【表达式求值】2016.11.11第三题equal题解