logo
当前页

自定义美颜相关功能

本文将为您介绍如何自定义美颜效果及 UI 样式,及如何管理美颜相关资源。

前提条件

在使用自定义美颜功能前,需保证已 集成进阶美颜效果

自定义美颜效果

说明

当前美颜效果包支持两种类型:基础版和专业版

  • 基础版:仅包括基本美颜效果。
  • 专业版:包括面部美化、面部塑形、面部特征增强、美妆样式、贴纸和滤镜等其他功能。更多详情,请参考 AI 美颜 相关文档。

要自定义美颜效果,请在 ZegoUIKitPrebuiltCallConfig 中配置 beautyConfig

美颜效果

美颜效果包括 4 个功能:基础美颜效果、高级美颜效果(面部塑形)、面部特征增强和美妆样式。您可以启用所有四个功能,或者只选择其中几个。

基础版仅包括基本美颜效果。如果您需要其他功能,请选择专业版。

示例 1:选择基础美颜效果和高级美颜效果

ZegoUIKitPrebuiltCallConfig config;
// ...

List<ZegoBeautyPluginEffectsType> customTypes = new ArrayList<>();
customTypes.addAll(ZegoBeautyPluginConfig.basicTypes());
customTypes.addAll(ZegoBeautyPluginConfig.advancedTypes());

config.beautyConfig.effectsTypes = customTypes;

//...

显示效果如下:

示例 2:选择所有四个功能

ZegoUIKitPrebuiltCallConfig config;
// ...

List<ZegoBeautyPluginEffectsType> customTypes = new ArrayList<>();
customTypes.addAll(ZegoBeautyPluginConfig.basicTypes());
customTypes.addAll(ZegoBeautyPluginConfig.advancedTypes());
customTypes.addAll(ZegoBeautyPluginConfig.makeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.styleMakeupTypes());
config.beautyConfig.effectsTypes = customTypes;

//...

显示效果如下:

滤镜

滤镜包括共 10 种不同的滤镜效果,您可以使用以下代码进行设置:

ZegoUIKitPrebuiltCallConfig config;
// ...

List<ZegoBeautyPluginEffectsType> customTypes = new ArrayList<>();
customTypes.addAll(ZegoBeautyPluginConfig.basicTypes());
customTypes.addAll(ZegoBeautyPluginConfig.advancedTypes());
customTypes.addAll(ZegoBeautyPluginConfig.makeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.styleMakeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.filterTypes());
config.beautyConfig.effectsTypes = customTypes;

//...

显示效果如下:

贴纸

贴纸功能需要相对较多的资源,您可以根据需要选择是否集成贴纸功能,详情可参考如下代码。

ZegoUIKitPrebuiltCallConfig config;
// ...

List<ZegoBeautyPluginEffectsType> customTypes = new ArrayList<>();
customTypes.addAll(ZegoBeautyPluginConfig.basicTypes());
customTypes.addAll(ZegoBeautyPluginConfig.advancedTypes());
customTypes.addAll(ZegoBeautyPluginConfig.makeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.styleMakeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.filterTypes());
customTypes.addAll(ZegoBeautyPluginConfig.stickerTypes());
config.beautyConfig.effectsTypes = customTypes;

//...

显示效果如下:

背景分割

如需集成背景分割功能,可参考如下代码:

ZegoUIKitPrebuiltCallConfig config;
// ...

List<ZegoBeautyPluginEffectsType> customTypes = new ArrayList<>();
customTypes.addAll(ZegoBeautyPluginConfig.basicTypes());
customTypes.addAll(ZegoBeautyPluginConfig.advancedTypes());
customTypes.addAll(ZegoBeautyPluginConfig.makeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.styleMakeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.filterTypes());
customTypes.addAll(ZegoBeautyPluginConfig.stickerTypes());
customTypes.addAll(ZegoBeautyPluginConfig.backgroundTypes());
config.beautyConfig.effectsTypes = customTypes;

//...

对于背景分割中的肖像分割,您需要提供一张背景图片,您可以将图片放入 BackgroundImages 文件夹中,并通过 config 进行设置。

BeautyResources/BackgroundImages/image1.jpg

通过以下代码进行配置:

ZegoUIKitPrebuiltCallConfig config;
// ...

List<ZegoBeautyPluginEffectsType> customTypes = new ArrayList<>();
customTypes.addAll(ZegoBeautyPluginConfig.basicTypes());
customTypes.addAll(ZegoBeautyPluginConfig.advancedTypes());
customTypes.addAll(ZegoBeautyPluginConfig.makeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.styleMakeupTypes());
customTypes.addAll(ZegoBeautyPluginConfig.filterTypes());
customTypes.addAll(ZegoBeautyPluginConfig.stickerTypes());
customTypes.addAll(ZegoBeautyPluginConfig.backgroundTypes());
config.beautyConfig.effectsTypes = customTypes;
config.beautyConfig.segmentationBackgroundImageName = "image1.jpg";

//...

显示效果如下:

进一步自定义

除了上述功能自定义外,您还可以传入自定义的 effectsTypes 列表,决定您想要使用哪种美颜效果。

ZegoUIKitPrebuiltCallConfig config;
// ...

List<ZegoBeautyPluginEffectsType> customTypes = new ArrayList<>();
customTypes.add(ZegoBeautyPluginEffectsType.FILTER_GRAY_FILMLIKE);
customTypes.add(ZegoBeautyPluginEffectsType.FILTER_DREAMY_COZILY);

config.beautyConfig.effectsTypes = customTypes;

//...

自定义 UI

在底部弹出的 BottomBar 支持自定义 UI,每部分内容都支持自定义 ,效果如下。

自定义文字

如需自定义与高级美颜效果特性相关的文本,可以使用 ZegoBeautyPluginInnerText,详情请参考如下代码:

ZegoUIKitPrebuiltCallConfig config;
// ...

config.beautyConfig.innerText.titleFilter = "滤镜";
config.beautyConfig.innerText.beautyBasicSmoothing = "磨皮";
config.beautyConfig.innerText.beautyMakeupLipstick = "口红";

//...   

自定义背景颜色

如需自定义视图的背景颜色,请参考如下代码:

ZegoUIKitPrebuiltCallConfig config;
// ...

config.beautyConfig.uiConfig.backgroundColor = Color.RED;

//...   

自定义文字颜色

如需自定义文本颜色,请参考如下代码:

ZegoUIKitPrebuiltCallConfig config;
// ...

config.beautyConfig.uiConfig.selectedHeaderTitleTextColor = Color.GREEN;
config.beautyConfig.uiConfig.selectedTextColor = Color.CYAN;

//...   

自定义返回按钮图标

如需自定义返回按钮图标,请参考如下代码:

ZegoUIKitPrebuiltCallConfig config;
// ...

config.beautyConfig.uiConfig.backIcon = getDrawable(R.drawable.custom_back_icon); 

//...   

保存上次使用的美颜参数

如需保存上次使用的美颜参数,请设置 ZegoUIKitPrebuiltCallConfig.beautyConfig.saveLastBeautyParam 为true


ZegoUIKitPrebuiltCallConfig config;
// ...
config.beautyConfig.saveLastBeautyParam = true;

如果需要重置美颜效果,请使用 ZegoUIKitPrebuiltCallService.resetAllBeautiesToDefault().

资源管理

上述的下载资源,包含所有特性的资源,但如果您不需要所有特性,您可以删除一些不必要的资源以减小应用包的大小。

资源描述

  • 必要资源(必要的所有特性,不能删除)

    BeautyResources/CommonResources.bundle
    BeautyResources/FaceDetection.model
  • 贴纸的必要资源(如果您需要使用贴纸特性,则不能删除)

    BeautyResources/StickerBaseResources.bundle
  • 背景分割的必要资源(如果您需要使用背景分割特性,则不能删除)

    BeautyResources/BackgroundSegmentation.model
  • 特性资源文件夹

    特性资源文件夹中的每个资源,都对应一个特定的特性。如果您需要使用某个特性,则需要保留相应的资源文件夹,否则,您可以删除它。

    BeautyResources/AdvancedResources

特性资源文件夹

特性
子特性
枚举名称资源名称
美颜基础BASIC_SMOOTHING-
BASIC_SKIN_TONE-
BASIC_BLUSHER-
BASIC_SHARPENING-
BASIC_WRINKLES-
BASIC_DARK_CIRCLES-
高级ADVANCED_FACE_SLIMMING-
ADVANCED_EYES_ENLARGING-
ADVANCED_EYES_BRIGHTENING-
ADVANCED_CHIN_LENGTHENING-
ADVANCED_MOUTH_RESHAPE-
ADVANCED_TEETH_WHITENING-
ADVANCED_NOSE_SLIMMING-
ADVANCED_NOSE_LENGTHENING-
ADVANCED_FACE_SHORTENING-
ADVANCED_MANDIBLE_SLIMMING-
ADVANCED_CHEEKBONE_SLIMMING-
ADVANCED_FOREHEAD_SLIMMING-
美妆MAKEUP_LIPSTICK_CAMEO_PINKBeautyResources/AdvancedResources/beautyMakeupLipstickCameoPink.bundle
MAKEUP_LIPSTICK_SWEET_ORANGEBeautyResources/AdvancedResources/beautyMakeupLipstickSweetOrange.bundle
MAKEUP_LIPSTICK_RUST_RED BeautyResources/AdvancedResources/beautyMakeupLipstickRustRed.bundle
MAKEUP_LIPSTICK_CORALBeautyResources/AdvancedResources/beautyMakeupLipstickCoral.bundle
MAKEUP_LIPSTICK_RED_VELVETBeautyResources/AdvancedResources/beautyMakeupLipstickRedVelvet.bundle
MAKEUP_BLUSHER_SLIGHTLY_DRUNK BeautyResources/AdvancedResources/beautyMakeupBlusherSlightlyDrunk.bundle
MAKEUP_BLUSHER_PEACH BeautyResources/AdvancedResources/beautyMakeupBlusherPeach.bundle
MAKEUP_BLUSHER_MILKY_ORANGEBeautyResources/AdvancedResources/beautyMakeupBlusherMilkyOrange.bundle
MAKEUP_BLUSHER_APRICOT_PINKBeautyResources/AdvancedResources/beautyMakeupBlusherApricotPink.bundle
MAKEUP_BLUSHER_SWEET_ORANGEBeautyResources/AdvancedResources/beautyMakeupBlusherSweetOrange.bundle
MAKEUP_EYELASHES_NATURALBeautyResources/AdvancedResources/beautyMakeupEyelashesNatural.bundle
MAKEUP_EYELASHES_TENDER BeautyResources/AdvancedResources/beautyMakeupEyelashesTender.bundle
MAKEUP_EYELASHES_CURL BeautyResources/AdvancedResources/beautyMakeupEyelashesCurl.bundle
MAKEUP_EYELASHES_EVERLONG BeautyResources/AdvancedResources/beautyMakeupEyelashesEverlong.bundle
MAKEUP_EYELASHES_THICK BeautyResources/AdvancedResources/beautyMakeupEyelashesThick.bundle
MAKEUP_EYELINER_NATURAL BeautyResources/AdvancedResources/beautyMakeupEyelinerNatural.bundle
MAKEUP_EYELINER_CAT_EYEBeautyResources/AdvancedResources/beautyMakeupEyelinerCatEye.bundle
MAKEUP_EYELINER_NAUGHTYBeautyResources/AdvancedResources/beautyMakeupEyelinerNaughty.bundle
MAKEUP_EYELINER_INNOCENTBeautyResources/AdvancedResources/beautyMakeupEyelinerInnocent.bundle
MAKEUP_EYELINER_DIGNIFIEDBeautyResources/AdvancedResources/beautyMakeupEyelinerDignified.bundle
MAKEUP_EYESHADOW_PINK_MISTBeautyResources/AdvancedResources/beautyMakeupEyeshadowPinkMist.bundle
MAKEUP_EYESHADOW_SHIMMER_PINKBeautyResources/AdvancedResources/beautyMakeupEyeshadowShimmerPink.bundle
MAKEUP_EYESHADOW_TEA_BROWNBeautyResources/AdvancedResources/beautyMakeupEyeshadowTeaBrown.bundle
MAKEUP_EYESHADOW_BRIGHT_ORANGEBeautyResources/AdvancedResources/beautyMakeupEyeshadowBrightOrange.bundle
MAKEUP_EYESHADOW_MOCHA_BROWNBeautyResources/AdvancedResources/beautyMakeupEyeshadowMochaBrown.bundle
MAKEUP_COLORED_CONTACTS_DARKNIGHT_BLACKBeautyResources/AdvancedResources/beautyMakeupColoredContactsDarknightBlack.bundle
MAKEUP_COLORED_CONTACTS_STARRY_BLUEBeautyResources/AdvancedResources/beautyMakeupColoredContactsStarryBlue.bundle
MAKEUP_COLORED_CONTACTS_BROWN_GREENBeautyResources/AdvancedResources/beautyMakeupColoredContactsBrownGreen.bundle
MAKEUP_COLORED_CONTACTS_LIGHTS_BROWNBeautyResources/AdvancedResources/beautyMakeupColoredContactsLightsBrown.bundle
MAKEUP_COLORED_CONTACTS_CHOCOLATE_BROWNBeautyResources/AdvancedResources/beautyMakeupColoredContactsChocolateBrown.bundle
风格妆STYLE_MAKEUP_INNOCENT_EYESBeautyResources/AdvancedResources/beautyStyleMakeupInnocentEyes.bundle
STYLE_MAKEUP_MILKY_EYESBeautyResources/AdvancedResources/beautyStyleMakeupMilkyEyes.bundle
STYLE_MAKEUP_CUTIE_COOLBeautyResources/AdvancedResources/beautyStyleMakeupCutieCool.bundle
STYLE_MAKEUP_PURE_SEXYBeautyResources/AdvancedResources/beautyStyleMakeupPureSexy.bundle
STYLE_MAKEUP_FLAWLESSBeautyResources/AdvancedResources/beautyStyleMakeupFlawless.bundle
滤镜梦境自然FILTER_NATURAL_CREAMYBeautyResources/AdvancedResources/filterNaturalCreamy.bundle
FILTER_NATURAL_BRIGHTENBeautyResources/AdvancedResources/filterNaturalBrighten.bundle
FILTER_NATURAL_FRESHBeautyResources/AdvancedResources/filterNaturalFresh.bundle
FILTER_NATURAL_AUTUMNBeautyResources/AdvancedResources/filterNaturalAutumn.bundle
灰调FILTER_GRAY_MONETBeautyResources/AdvancedResources/filterGrayMonet.bundle
FILTER_GRAY_NIGHTBeautyResources/AdvancedResources/filterGrayNight.bundle
FILTER_GRAY_FILMLIKEBeautyResources/AdvancedResources/filterGrayFilmlike.bundle
梦境FILTER_DREAMY_SUNSETBeautyResources/AdvancedResources/filterDreamySunset.bundle
FILTER_DREAMY_COZILYBeautyResources/AdvancedResources/filterDreamyCozily.bundle
FILTER_DREAMY_SWEETBeautyResources/AdvancedResources/filterDreamySweet.bundle
贴纸贴纸STICKER_ANIMAL-
STICKER_DIVEBeautyResources/AdvancedResources/stickerDive.bundle
STICKER_CATBeautyResources/AdvancedResources/stickerCat.bundle
STICKER_WATERMELONBeautyResources/AdvancedResources/stickerWatermelon.bundle
STICKER_DEERBeautyResources/AdvancedResources/stickerDeer.bundle
STICKER_COOL_GIRLBeautyResources/AdvancedResources/stickerCoolGirl.bundle
STICKER_CLOWNBeautyResources/AdvancedResources/stickerClown.bundle
STICKER_CLAW_MACHINEBeautyResources/AdvancedResources/stickerClawMachine.bundle
STICKER_SAILOR_MOONBeautyResources/AdvancedResources/stickerSailorMoon.bundle
背景-BACKGROUND_PORTRAIT_SEGMENTATION-
BACKGROUND_MOSAICING-
BACKGROUND_GAUSSIAN_BLUR-

监听 BeautyPlugin 事件

您可以通过 config.beautyConfig.beautyEventHandler 监听 BeautyPlugin 事件,如果您在 config.beautyConfig 中启用了 faceDetection,可以在 onFaceDetectionResult 中接收面部检测数据。

注意

请特别注意 onInitResult 回调,如果初始化失败,美颜功能将无法使用,主要原因如下:

  • 当前应用的 ApplicationID 和 AppID 与注册的 ApplicationID 和 AppID 不一致。
  • 或 License 许可证已过期,请联系 ZEGO 技术支持处理。
ZegoUIKitPrebuiltCallConfig config;
// ...

config.beautyConfig.beautyEventHandler = new IBeautyEventHandler() {
    @Override
    public void onInitResult(int errorCode, String message) {
        super.onInitResult(errorCode, message);
        Log.d(TAG, "onInitResult() called with: errorCode = [" + errorCode + "], message = [" + message + "]");
    }

    @Override
    public void onError(int errorCode, String message) {
        super.onError(errorCode, message);
        Log.d(TAG, "onError() called with: errorCode = [" + errorCode + "], message = [" + message + "]");
    }

    @Override
    public void onFaceDetectionResult(ZegoBeautyPluginFaceDetectionResult[] results) {
        super.onFaceDetectionResult(results);
        Log.d(TAG, "onFaceDetectionResult() called with: results = [" + results + "]");
    }
};

//... 

Previous

集成进阶美颜

Next

排查呼叫邀请故障