会员登录|免费注册|忘记密码|管理入口 返回主站||保存桌面
android 实现贴纸功能 手机贴纸模板手机贴纸「android 实现贴纸功能 手机贴纸模板」
2025-01-12IP属地 湖北9


前言

在这个美即真理、全民娱乐的时代,可爱有趣的人脸贴纸在各大美颜软件中得到了广泛的应用,现在已经不仅局限于相机美颜类软件中,在社交、娱乐类的app中对人脸贴纸、AR贴纸的需求也非常广泛。本文详细介绍了集成华为HMS ML kit人脸识别实现2d贴纸的集成过程,在后面的文章中我们还会介绍3D贴纸的开发过程,欢迎大家关注哦~

场景

在美颜相机、美图app以及社交类app(如抖音、微博、微信)等需要对拍照,或者对照片进行处理的app都会构建自己特有的贴纸的需求。

开发前准备

在项目级gradle里添加华为maven仓

打开AndroidStudio项目级build.gradle文件

android 实现贴纸功能 手机贴纸模板_滤镜

增量添加如下maven地址:

在应用级的build.gradle里面加上SDK依赖

android 实现贴纸功能 手机贴纸模板_maven_02

在AndroidManifest.xml文件里面申请相机、访问网络和存储权限

代码开发关键步骤

设置人脸检测器

这里我们通过相机回调拿到相机帧数据,并通过调用人脸检测器拿到人脸轮廓点后写入FacePointEngine供贴纸滤镜使用@Override

ML kit接口返回的人脸轮廓点情况如图所示:

android 实现贴纸功能 手机贴纸模板_android 实现贴纸功能_03

介绍如何设计贴纸,首先看一下贴纸数JSON数据定义public class FaceStickerJson {

我们制作猫耳贴纸JSON文件,通过人脸索引找到眉心84号点和鼻尖85号点分别贴上耳朵和鼻子,然后把它和图片都放在assets目录下{

这里渲染贴纸纹理我们使用GLSurfaceView,使用起来比TextureView简单, 首先在onSurfaceChanged实例化贴纸滤镜,传入贴纸路径并开启相机@Override

然后在onSurfaceChanged初始化贴纸滤镜@Override

最后通过onDrawFrame把贴纸绘制到屏幕@Override

这样我们的贴纸就画到人脸上了.

Demo效果

android 实现贴纸功能 手机贴纸模板_滤镜_04

源码