Documentation
AI_Vision AI Effects
Documentation
Demo APP
SDK Center
API Center
FAQ
Code Market
Console
Sign Up
Log In
中文站 English
  • Documentation
  • AI Effects
  • Getting started
  • Implement basic image processing

Implement basic image processing

Last updated:2025-04-07 19:19

This document describes how to implement basic image processing with the ZegoEffects SDK.

Prerequisites

Before implementing the basic image processing functionality, make sure you complete the following steps:

  • Integrate the ZegoEffects SDK into your project. For more information, see Quick starts - Integration.
  • Get the unique license file of the SDK. For details, see Online privilege authentication.

Implementation steps

The following diagram shows the API call sequence of basic image processing with the ZegoEffects SDK:

/Pics/AI_Vision/QuickStarts/Implemention_Android_en.png

Create a ZegoEffects object

  1. Import the AI resources and models.

    To use the SDK's AI features, you must import the necessary AI resources or models by calling the setResources method. For details, see Quick starts - Import resources and models.

    // Specify the absolute path of the face recognition model, which is required for various features including Face detection, eyes enlarging, and face slimming.
    ArrayList<String> aiModeInfos = new ArrayList<>();
    aiModeInfos.add("sdcard/xxx/xxxxx/FaceDetectionModel.model");
    aiModeInfos.add("sdcard/xxx/xxxxx/Segmentation.model");  
    
    // Set the list of model paths, which must be called before calling the create method.
    ZegoEffects.setResources(aiModeInfos);
  1. Deploy Advanced Configuration.

    Call the setAdvancedConfig interface to deploy advanced configuration items, such as configuring device performance levels. For details, please refer to Configure Device Performance Level.

    ZegoEffectsAdvancedConfig config = new ZegoEffectsAdvancedConfig();
    // Device performance level can be configured
    ZegoEffects.setAdvancedConfig(config);
  2. Create Effects Object.

    Pass the AppID and AppSign obtained from the Prerequisites directly to the create interface. After internal authentication by the SDK, it will create an Effects object and return the corresponding error code.

    ZegoEffects mEffects = null;
    long appid = *******;
    String appSign = "*******";
    mEffects = ZegoEffects.create(appid, appSign, applicationContex);

Initialize the ZegoEffects object

  1. Call the initEnv method to initialize the ZegoEffects object, passing in the width and height of the original image to be processed.

    // Initialize the ZegoEffects object, passing in the width and height of the original image to be processed.
    mEffects.initEnv(1280, 720);
  2. Call the following methods to enable the AI features you want to use.

    • enableWhiten

    • enableBigEyes

    • setPortraitSegmentationBackgroundPath

    • enablePortraitSegmentation

      // 1. Enable the skin tone enhancement feature.
      // 2. Enable the eyes enlargeing feature.
      // 3. Enable the AI portrait segmentation feature, passing in the absolute path of the segmented background image.
      mEffects.enableWhiten(true)
            .enableBigEyes(true)
            .setPortraitSegmentationBackgroundPath("MY_BACKGROUND_PATH", ZegoEffectsScaleMode.ASPECT_FILL);
            .enablePortraitSegmentation(true);

Perform image processing

Call the processTexturemethod to perform image processing. SDK also supports YUV, Texture, and other formats for image processing. For details, see the following table:

Video frame type Pixel format / Texture ID Method
Buff
  • BGRA32
  • RGBA32
processImageBufferRGB
Buff
  • NV21
  • NV12
  • I420
  • YV12
processImageBufferYUV
Texture Texture ID processTexture

The following sample code calls the processTexturemethod for image processing:

ZegoEffectsVideoFrameParam zegoEffectsVideoFrameParam = new ZegoEffectsVideoFrameParam();
zegoEffectsVideoFrameParam.setFormat(ZegoEffectsVideoFrameFormat.RGBA32);
zegoEffectsVideoFrameParam.setWidth(width);
zegoEffectsVideoFrameParam.setHeight(height);
// Pass in the textureID of the original video frame to be processed, and return the textureID of the processed video frame.
zegoTextureId = mEffects.processTexture(mTextureId, zegoEffectsVideoFrameParam);
Page Directory
  • Free trial
  • 提交工单
    咨询集成、功能及报价等问题
    电话咨询
    400 1006 604
    Get Consulting
    Scan Wechat QR code