实时美妆魅力尽显:探索相芯轻美妆SDK功能及集成方法(Android)

如何使用相芯科技美妆SDK实现美妆(Android) 相芯SDK提供23种内置美妆妆容,如减龄,邻家女孩,欧美等多样妆容风格。支持口红、腮红、 眉毛、眼影、 眼线、睫毛、美瞳、粉底、眼影、高光等15大维度,多种搭配,轻松实现变妆。相芯SDK内置23种组合妆容,供您一键切换妆容,当然您也可以自己设置口红,眉毛,粉底等美妆参数,实现自定义美妆组合功能。短视频平台,社交娱乐,手机相机,直播平台,包括美妆品牌可以联合相芯打造在线试妆,提高商业转化率。5.1.1 build.gradle配置。5.1Faceunity接入。5.2.1.加载美妆组合妆容。 阅读详情

随着人工智能技术的不断发展,相芯SDK的轻美妆功能为用户带来了一种全新的美妆体验。轻美妆是妆容和美妆的结合,使用比较轻薄的妆效使轻美妆效果更佳。这一功能集成了多项先进技术,通过人脸识别、图像处理和分割等技术,实现了实时美妆效果的展示和应用。本文将深入介绍相芯SDK轻美妆功能及其集成方法,让您了解其中的魅力所在。

相芯SDK的轻美妆功能提供了多种令人惊艳的妆容风格,包括桃花、西柚、清透和男友风格等。每种妆容风格都有其独特的特点和适用场合。通过人脸识别技术,该功能能够准确识别用户的面部特征,将虚拟彩妆与用户的脸部精确融合,展现出逼真而自然的效果。用户可以在相机预览或者图片上实时尝试这些妆容风格,根据自己的需求和场合选择最适合的妆容,让自己的形象更加出众和自信。

除了个性化定制的妆容风格外,相芯SDK的轻美妆功能还具有许多优点。首先,它能够实时预览虚拟彩妆效果,让用户在试妆前即时看到不同妆容风格在自己脸部的效果,方便用户进行选择和调整。其次,这一功能能够根据用户的肤色特征提供适合的彩妆颜色建议,并允许用户根据自己的喜好和需求进行调整,实现个性化定制。此外,相芯SDK的轻美妆功能还通过光照仿真和质感处理技术增强了虚拟彩妆的逼真度,使其看起来更贴合真实肌肤。

1. 功能介绍

相芯SDK的轻美妆功能提供了多种妆容风格,其中包括妆容桃花、西柚、清透和男友风格。以下是对每种妆容风格的简要介绍:

桃花妆容: 桃花妆容以粉嫩、可爱为特点,强调女性的柔美和甜美气质。它通常采用柔和的粉色和桃红色系口红,搭配温柔的眼妆和自然的腮红。这种妆容适合日常生活中的休闲、约会或者聚会等场合,营造出可爱而迷人的形象。

西柚妆容: 西柚妆容追求自然、清新和健康的效果。它以柔和的自然色系为主,如粉色、裸色和自然色口红,突出自然的肌肤质感,强调眼部轻盈明亮的妆效。西柚妆容适合日常工作、校园或者户外活动等场合,展现出清新自然的形象。

清透妆容: 清透妆容追求透明感和清爽感,注重妆效自然而轻薄。它通常使用清透的粉底和薄涂的唇彩,眼妆简约而明亮。这种妆容适合正式场合、商务会议或者活动,营造出干净利落的形象。

男友妆容: 男友妆容是一种强调自然、低调而不失精致的妆容风格。它注重自然的素颜感,强调皮肤的清透与健康,通常使用轻薄的粉底和淡淡的眼妆。男友妆容适合日常生活中的休闲、约会或者朋友聚会等场合,营造出亲和力十足的形象。

通过相芯SDK的轻美妆功能,用户可以在相机预览或者图片上实时尝试这些不同的妆容风格,根据自己的需求和场合选择最适合的妆容,让自己的形象更加出众和自信。

2.使用前必查

在项目中使用轻美妆特效之前,请确保

l 已在项目中引入Faceunity SDK,详情请参考Faceunity集成文档

l 已申请包含轻美妆权限的authpack证书文件

SDK及证书获取方法:

如何集成相芯滤镜SDK(Android) 1. 阅读详情

相关推荐

Android语言基础教程(28)Android SDK中常用命令之android命令:揭秘Android SDK中的“瑞士军刀”:android命令全掌握

本文深度解析Android SDK中强大却常被忽视的android命令,从环境配置到实战应用,详细介绍如何通过命令行创建管理虚拟设备、安装SDK组件、构建项目。掌握这一“瑞士军刀”工具,不仅能提升开发效率,还能深入理解Android开发环境机制,助你成为真正的命令行高手。

jxf_jxfcsdn的博客 532

MapLibre Native跨平台地图SDK集成指南:iOS/Android/Flutter/React Native实战

地图渲染引擎是移动应用实现位置服务(LBS)和地理信息可视化的核心技术基础。其工作原理是通过解析矢量或栅格瓦片数据,结合样式规范,利用GPU进行高效图形绘制,从而实现动态、交互式的地图展示。这项技术的核心价值在于为开发者提供了自主可控、高性能且可深度定制的地图显示能力,摆脱了对特定商业服务商的依赖。在出行导航、物流追踪、户外运动及地产勘查等应用场景中,复杂的地图交互与海量数据渲染需求日益增长。本文聚焦于MapLibre Native这一开源地图渲染引擎,它脱胎于Mapbox GL Native,采用C++核

dfdfadsf3443的博客 494

安卓WebRTC与SRS实战:从零搭建实时音视频推拉流系统

本文详细介绍了如何从零开始,在安卓平台上利用WebRTC技术结合SRS流媒体服务器,搭建一套完整的实时音视频推拉流系统。内容涵盖SRS服务器的环境配置与WebRTC支持、安卓客户端的开发环境搭建,并分步实现了推流与拉流的核心功能,为开发者构建低延迟的实时音视频应用提供了实战指南。

whisky的博客 176

Android 贝塞尔曲线的魅力

前几天在手机优快云客户端看到一个QQ红点拖拽消失的效果,感觉挺好的,又回想到以前见到的诸如一下效果,感觉挺炫酷的,于是就看了下QQ拖拽的代码,记下笔记。 , 这个是在泡网上找到 还有一个指示器的效果,那个一时半会找不见了。UC浏览器新闻那一块的下拉刷新也是用了贝塞尔曲线的。什么是贝塞尔曲线 在数学的数值分析领域中,贝塞尔曲线, 又称贝赛尔曲线(Bézier曲线)是电脑图形学中

_StriveG的专栏 8759

PyQt6安卓开发实战:从环境搭建到APK打包全流程

本文详细介绍了使用PyQt6进行安卓应用开发的全流程,从环境搭建、移动端界面设计到使用Buildozer打包APK。针对Python开发者,重点阐述了如何复用桌面端代码、配置打包工具链以及处理安卓平台特殊性,为开发轻量级移动应用提供了一条高效路径。

weixin_29158047的博客 526

Android集成Lua脚本引擎实战:从环境搭建到双向交互完整指南

脚本引擎技术作为实现应用动态化与热更新的核心方案,在移动开发领域备受关注。其原理在于将脚本语言运行时嵌入宿主应用,通过解释执行或即时编译实现逻辑的动态加载与更新,从而赋予应用在无需重新发布安装包的情况下修改业务逻辑的能力。这一技术为应用带来了显著的价值:提升迭代效率、优化用户体验、降低发版成本,尤其适用于业务规则频繁变动、活动运营需求多的场景,如电商促销、游戏数值调整等。在Android生态中,Java/Kotlin与Lua的混合开发模式是实现该能力的主流路径之一。本文聚焦于**Android-Lua混合开

weixin_33795093的博客 334

Python+Appium+MuMu模拟器:安卓自动化测试环境搭建与脚本编写实战

移动端自动化测试是提升软件质量和研发效能的关键技术,其核心原理是通过脚本模拟用户操作,实现对应用界面的自动控制和验证。在技术选型上,Appium作为主流的开源框架,遵循WebDriver协议,提供了跨平台的统一API,极大降低了移动端自动化的学习门槛。结合Python简洁的语法和丰富的生态,开发者可以快速构建稳定、可维护的测试脚本。对于安卓测试环境,网易MuMu模拟器以其出色的稳定性和对Appium的良好支持,成为搭建本地自动化测试环境的理想选择。本文将以Python+Appium+MuMu模拟器这一黄金组

weixin_42537142的博客 298

老旧安卓设备AI聊天应用部署指南:OAC项目实战与优化

在移动应用开发中,系统兼容性与硬件资源优化是永恒的技术挑战。其核心原理在于通过架构设计平衡客户端性能与功能需求,例如采用瘦客户端-胖服务端的模式,将计算密集型任务卸载到云端。这种技术方案的价值在于能够最大化利用现有设备潜能,尤其适用于资源受限的物联网或边缘计算场景。具体到安卓生态,针对Android 4.x/5.x等低版本系统的应用部署,常涉及SDK版本降级、网络库兼容性处理以及APK体积优化等工程实践。本文以OAC(Old Android Chat)项目为例,详细拆解了如何在老旧设备上通过云端代理架构实现

weixin_34178244的博客 484

macOS 上利用 ADB 管理安卓设备:从手机到智能电视的全面指南

本文详细介绍了在macOS系统上配置和使用ADB工具,全面管理安卓手机、智能电视等设备的方法。从通过Homebrew或手动方式安装ADB环境,到连接各类设备并进行应用安装、文件传输、屏幕操作等核心命令实战,提供了针对智能电视的专属优化技巧与常见问题解决方案,是提升安卓设备管理效率的实用指南。

html8的博客 791

Android(安卓)开发零基础入门课程【笔记】

此文章是根据B站的视频教程整理总结的笔记,用白话说明一些Android开发的入门知识,共勉。 B站教程链接:https://www.bilibili.com/video/BV13y4y1E7pF?p=12&spm_id_from=pageDriver

Flameyjh的博客 4147

Mac环境下安装配置android sdk

在mac上可以使用 homebrew 包管理工具来安装软件,所以要安装sdk,首先需要安装brew包,详情可参照我上一篇博客:Mac 安装 homebrew 详细教程,这里就不过多赘述。

易编橙 · 终身成长社群,相遇已是上上签! 4万+

2、开启安卓游戏开发之旅

本文详细介绍了安卓游戏开发的入门过程,包括开发环境的搭建、项目创建、代码编写、调试分析以及游戏发布等关键步骤。内容涵盖了从基础的JDK和安卓SDK安装到Eclipse开发工具的配置,再到游戏设计、编程实现和性能优化等高级主题。同时,还探讨了游戏营销、盈利模式及未来发展趋势,帮助开发者全面了解安卓游戏开发的全过程。

rain6的博客 320

Android 集成Flutter

Flutter 作为 Google 开源的新一代跨平台、高性能 UI 框架,旨在帮助开发者高效地构建出跨平台的、UI 与交互体验一致的精美应用,推出后一直倍受开发者的青睐。 当需要开发一个全新的应用时,我们可以很方便地从零开始,完全使用 Flutter 进行开发。但如果是针对一个现有的应用,需要引入 Flutter 技术,显然使用 Flutter 全部重写一遍是不现实的。幸运的是,Flutter 很好地支持了以独立页面、甚至是 UI 片段的方式集成到现有的应用中,即所谓的混合开发模式。本文主要从一个 And

xiangzhihong8的专栏 629

3、安卓开发:开启移动应用新世界

本文深入探讨了安卓开发作为移动应用创新平台的全面优势,涵盖其开放架构、强大的SDK特性、原生应用生态及未来技术趋势。从硬件访问、后台服务到AI、IoT、AR/VR的融合,文章为开发者提供了完整的技术视角与发展路径,并介绍了必备技能与学习路线,助力开发者在安卓生态中创造改变用户生活的应用。

sand8的博客 58

Ubuntu22.04实战:基于VLLM高效部署Qwen3系列模型并构建Dify智能体

本文详细介绍了在Ubuntu22.04系统上使用VLLM高效部署Qwen3系列模型并集成Dify平台的实战指南。从环境配置、Conda管理到VLLM优化部署,再到Dify智能体构建,提供了全面的技术方案和性能调优建议,帮助开发者快速实现AI模型的高效部署与应用。

weixin_28323057的博客 161

Leaflet 加载天地图完整配置指南:从插件修改到无限缩放(附源码)

本文详细介绍了Leaflet与天地图深度集成的完整配置指南,包括插件修改、无限缩放实现及源码示例。通过解析天地图服务的WMTS协议、双投影支持和密钥机制,帮助开发者突破缩放级别限制,优化地图应用性能,适用于Web地图开发和高精度GIS系统。

weixin_27180827的博客 440

CGNS快速入门到实战(二):VS配置调用CGNS静态链接库

CGNS快速入门到实战这一系列分成三篇文章展开叙述,具体有:(一)CGNS静态链接库编译;(二)VS配置调用CGNS静态链接库;(三)CGNS文件及案例展示。本篇文章重点讲述VS配置调用CGNS静态链接库。

ahang_99的博客 2616

【万字长文】学习Armv8架构虚拟化一篇就够了

这里我们将介绍一些基础的Hypervisor和虚拟化的理论知识。如果你已经有一定的基础或是已经熟悉了这些概念,可以跳过这部分内容。我们用Hypervisor这个词来定义一种负责创建,管理以及调度虚拟机(Virtual Machines, VMs)的软件。Stage 2 转换允许Hypervisor控制虚拟机的内存视图。具体来说,其可以控制虚拟机是否可以访问特定的某一块物理内存,以及该内存块出现在虚拟机内存空间的位置。这种能力对于虚拟机的隔离和沙箱功能来说至关重要。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 5312

ROS教程(四):RVIZ使用教程(详细图文)

前言 根据前面的教程已经学会了创建功能包,那么本篇文章主要内容则是通过节点来发布数据至RVIZ

Leslie的博客 17万+

【软考高级架构】论文范文12——论生成式AI在软件开发中的应用与挑战

随着生成式AI技术的跨越式发展,以大语言模型为代表的生成式AI正在深刻改变软件开发的传统模式。在代码生成、测试构造、文档编写等环节,生成式AI展现出显著的效率提升潜力,但其应用也面临着代码质量不可控、安全漏洞植入、版权合规等严峻挑战。本文以笔者主导的某大型金融企业智能研发辅助平台建设项目为案例,围绕生成式AI在软件开发中的应用实践与应对挑战的策略展开论述。笔者担任系统架构师,负责平台架构设计、模型选型、质量保障机制及安全防线构建。

qq837993702的博客 275

【局部规划模块轨迹优化算法】EM_planner最大期望滚动优化算法

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对EM_planner最大期望滚动优化算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 759

大数据合规工程师必备的7项核心技能

当我们谈论“大数据”时,往往先想到它的价值——驱动业务增长、优化用户体验、赋能智能决策。大数据的价值越大,其合规风险的“重量”就越重。2023年,全球有超过120个国家出台了数据保护法规,中国《个人信息保护法》《数据安全法》的实施进入深水区,欧盟GDPR的罚款金额屡创新高(最高达全球营收的4%)。企业面临的合规压力,早已从“被动应对监管”升级为“主动构建合规能力”。在这样的背景下,大数据合规工程师。

SuperAGI2025 1258

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: 探索相芯Animoji:与动漫滤镜一起开启独特的虚拟表情世界(Android)
下一篇: 开启虚拟人物互动新时代:探索相芯Avatar SDK驱动功能(Android)
相芯科技Faceunity
博客等级 码龄4年 2粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值