cocos2d 剪裁圆头像
来源:互联网 发布:网上配眼镜 知乎 编辑:程序博客网 时间:2024/06/10 18:50
使用ClippingNode来实现剪裁圆头像
一、原理
ClippingNode,有三个相关实体:模板(Stencil)、底板、Layer,其原理就是将模板做为遮罩,遮罩本身不渲染,透过遮罩对底板进行裁剪,最后将裁剪后的结果放在Layer层上。
简单来说遮罩上有不同的形状和透明区域(是否透明由setAlphaThreshold来指定,小于指定值的都算透明),根据形状来将裁剪底板,裁剪后当做一个节点,可以和普通node一样任意摆放。
当然,也可以根据透明区域去裁剪,由setInverted(true)来指定。
二、实现带边框圆形头像
现在我们就可以来实现上面说到的功能了。其实有了上面的知识储备,想要什么形状的头像都可以了
1、为什么要带边框
开始尝试只使用ClippingNode来裁剪,确实可以将图变成圆形,但是边上的锯齿严重,非常不好看,所以需要在外面再罩一个圆圈边框,看上去会好很多。
2、代码实现
/*设置相关图片,返回设置好后的精灵@param texture2D:头像纹理@param facePos截取截取位置@param showPos头像需要摆放的位置@param imgScale纹理需要缩放的倍率*/Sprite* RoundLayer::setImg(Texture2D *texture2D, Vec2 facePos,Vec2 showPos,float imgScale){ auto clipNode = ClippingNode::create(); //圆形模板 auto mask = Sprite::create("..\\Resources\\clip\\circle_muban.png"); clipNode->setAlphaThreshold(0.5f); clipNode->setInverted(false); clipNode->setStencil(mask); //mask->setPosition(facePos); //需要被处理的纹理图像 auto img = Sprite::create(); img->initWithTexture(texture2D); img->setScale(imgScale); img->setPosition(-facePos); //将头像大小缩放为模板大小 //img->setScale(mask->getContentSize().width / img->getContentSize().width); clipNode->addChild(img); //clipNode->setPosition(-facePos); this->addChild(clipNode); //this->addChild(img); //最后套上一个环,掩盖锯齿 auto circle = Sprite::create("..\\Resources\\clip\\circle_alpha.png"); //circle->setPosition(facePos); this->addChild(circle); setPosition(showPos); return this;}
参考链接http://blog.csdn.net/pur_e/article/details/50540599
阅读全文
0 0
- cocos2d 剪裁圆头像
- 头像剪裁
- Android 调用系统剪裁工具剪裁用户头像
- Android上传头像,图片剪裁,压缩图片
- Android上传头像,图片剪裁,压缩图片
- Android 仿照QQ剪裁头像(完结篇)
- 网站用户头像剪裁上传完整案例
- Android上传头像,图片剪裁,压缩图片
- 个人资料上传头像模块,拍照+图库+图片剪裁+圆形头像
- Jquery+ASP.NET 实现开心网上传头像剪裁功能
- 图片预览、上传、剪裁(类似于CSDN的头像上传功能)
- flash上传头像剪裁预览组件 1.3版本发布了
- Android图片选取和剪裁头像的相关问题
- iOS 调取本地相册/相机,剪裁图片进行头像上传
- 用户头像从相机或者相册选择并剪裁
- 使用HTML5的Canvas画布来剪裁用户头像
- 切换头像,拍照或者相册选择后剪裁
- JAVA spring+jcrop.js实现简单的头像剪裁
- jenkins安装与部署
- 后台工作者HangFire与ABP框架Abp.Hangfire及扩展
- ajax常用写法
- MDK5常见错误
- python获取人民币汇率数据
- cocos2d 剪裁圆头像
- 1.数组合并同时删除相同的元素2.删除数组某些元素
- 第十一周项目四
- C++学习笔记--转换构造函数
- 数据结构上机实践第11周项目3
- android+测试基础2VWXH模型
- 安装nginx时报错:No package nginx available. Error: Nothing to do
- 单层神经网络
- 第十三周项目四