Android API 参考
日志相关
日志级别
日志级别枚举,用于控制日志输出级别。
java
public enum LogLevel {
TRACE(0, "TRACE"),
DEBUG(1, "DEBUG"),
INFO(2, "INFO"),
WARN(3, "WARN"),
ERROR(4, "ERROR"),
CRITICAL(5, "CRITICAL");
}日志配置类
日志配置类,用于配置日志输出方式和级别。
字段说明:
consoleEnabled: 是否启用控制台输出fileEnabled: 是否启用文件输出level: 日志级别fileName: 日志文件路径(仅在fileEnabled为true时有效)
java
public static class LogConfig {
public boolean consoleEnabled;
public boolean fileEnabled;
public LogLevel level;
public String fileName;
public LogConfig();
public LogConfig(boolean consoleEnabled, boolean fileEnabled, LogLevel level, String fileName);
}引擎相关
处理模式
图像处理模式枚举。
IMAGE: 图像模式,适合单张图片处理VIDEO: 视频模式,适合视频流和直播场景,性能更优
java
public enum ProcessMode {
IMAGE(0), // 图像模式
VIDEO(1); // 视频模式
}引擎配置
引擎配置类,用于初始化美颜引擎。
字段说明:
appId: 应用 ID(可选,如果提供了licenseJson则不需要)appKey: 应用密钥(可选,如果提供了licenseJson则不需要)licenseJson: 授权数据 JSON 字符串(可选,如果提供了则优先使用,不需要appId和appKey)
方法:
isValid(): 验证配置是否有效- 如果提供了
licenseJson,则使用授权数据验证 - 否则需要
appId和appKey进行自动联网验证
- 如果提供了
java
public static class EngineConfig {
public String appId;
public String appKey;
public String licenseJson; // 授权数据JSON字符串(可选)
public EngineConfig();
public EngineConfig(String appId, String appKey);
public boolean isValid();
}引擎接口
美颜效果引擎主类,提供美颜功能的入口。
静态方法:
setLogConfig(LogConfig config): 设置日志配置
实例方法:
初始化与释放
BeautyEffectEngine(Context context, EngineConfig config): 构造函数,创建引擎实例void release(): 释放引擎资源
美颜类型控制
int enableBeautyType(BeautyType type, boolean enabled): 启用或禁用美颜类型boolean isBeautyTypeEnabled(BeautyType type): 检查美颜类型是否已启用int disableAllBeautyTypes(): 禁用所有美颜类型
参数设置
int setBeautyParam(BasicParam param, float value): 设置基础美颜参数(范围 0.0 - 1.0)int setBeautyParam(ReshapeParam param, float value): 设置面部重塑参数(范围 0.0 - 1.0)int setBeautyParam(MakeupParam param, float value): 设置美妆参数(范围 0.0 - 1.0)int setVirtualBackground(VirtualBackgroundOptions options): 设置虚拟背景- 参数:
VirtualBackgroundOptions对象,包含背景模式和背景图片 - 返回值:
0表示成功,-1表示引擎未初始化,-2表示参数无效(options 为 null 或无效)
- 参数:
图像处理
ImageFrame processImage(ImageFrame inputFrame, ProcessMode processMode): 处理图像帧
返回值说明:
- 方法返回
int类型:0表示成功-1表示引擎未初始化-2表示参数无效(仅setVirtualBackground方法)
processImage返回ImageFrame:处理后的图像帧,失败时返回null
java
public class BeautyEffectEngine {
public static void setLogConfig(LogConfig config);
public BeautyEffectEngine(Context context, EngineConfig config);
public void release();
public int enableBeautyType(BeautyType type, boolean enabled);
public boolean isBeautyTypeEnabled(BeautyType type);
public int disableAllBeautyTypes();
public int setBeautyParam(BasicParam param, float value);
public int setBeautyParam(ReshapeParam param, float value);
public int setBeautyParam(MakeupParam param, float value);
public int setVirtualBackground(VirtualBackgroundOptions options);
public ImageFrame processImage(ImageFrame inputFrame, ProcessMode processMode);
}美颜参数
美颜参数枚举类,包含所有美颜相关的参数类型定义。
美颜类型
定义可用的美颜功能类型。
java
public enum BeautyType {
BASIC(0), // 基础美颜
RESHAPE(1), // 面部重塑
MAKEUP(2), // 美妆效果
VIRTUAL_BACKGROUND(3); // 虚拟背景
}基础美颜参数
基础美颜效果的参数类型,所有参数值范围均为 0.0 - 1.0。
java
public enum BasicParam {
SMOOTHING(0), // 磨皮
SHARPENING(1), // 锐化
WHITENING(2), // 美白
ROSINESS(3); // 红润
}面部重塑参数
面部重塑效果的参数类型,所有参数值范围均为 0.0 - 1.0。
java
public enum ReshapeParam {
FACE_THIN(0), // 瘦脸
FACE_V_SHAPE(1), // V脸
FACE_NARROW(2), // 窄脸
FACE_SHORT(3), // 短脸
CHEEKBONE(4), // 颧骨
JAWBONE(5), // 下颌骨
CHIN(6), // 下巴
NOSE_SLIM(7), // 瘦鼻梁
EYE_SIZE(8), // 大眼
EYE_DISTANCE(9); // 眼距
}美妆参数
美妆效果的参数类型,所有参数值范围均为 0.0 - 1.0。
java
public enum MakeupParam {
LIPSTICK(0), // 口红
BLUSH(1); // 腮红
}虚拟背景选项
虚拟背景效果的配置选项。
java
public static class VirtualBackgroundOptions {
public BackgroundMode mode = BackgroundMode.NONE;
public ImageFrame backgroundImage = null;
public VirtualBackgroundOptions() {}
public VirtualBackgroundOptions(BackgroundMode mode) {
this.mode = mode;
}
}图像相关
ImageFrame
图像帧类,用于封装图像数据和处理。
创建方法:
createWithFile(String filePath): 从文件创建(支持 PNG、JPG)createWithRGBA(ByteBuffer data, int width, int height, int stride): 从 RGBA 数据创建createWithBGRA(ByteBuffer data, int width, int height, int stride): 从 BGRA 数据创建createWithI420(...): 从 I420 YUV 数据创建createWithAndroid420(...): 从 Android Camera2 YUV_420_888 格式创建
图像操作:
int rotate(ImageBuffer.Rotation rotation): 旋转图像(返回 0 表示成功)boolean isValid(): 检查图像帧是否有效
格式转换:
toRGBA(),toBGRA(),toRGB(),toBGR(): 转换为 RGB 格式toI420(),toNV12(),toNV21(): 转换为 YUV 格式
资源管理:
void release(): 释放 native 资源
java
public class ImageFrame {
public static ImageFrame createWithFile(String filePath);
public static ImageFrame createWithRGBA(ByteBuffer data, int width, int height, int stride);
public static ImageFrame createWithBGRA(ByteBuffer data, int width, int height, int stride);
public static ImageFrame createWithI420(int width, int height, ByteBuffer yBuffer, int strideY,
ByteBuffer uBuffer, int strideU, ByteBuffer vBuffer, int strideV);
public static ImageFrame createWithAndroid420(int width, int height, ByteBuffer yBuffer,
int strideY, ByteBuffer uBuffer, int strideU, ByteBuffer vBuffer, int strideV,
int pixelStrideUV);
public int rotate(ImageBuffer.Rotation rotation);
public boolean isValid();
public ImageBuffer toRGBA();
public ImageBuffer toBGRA();
public ImageBuffer toRGB();
public ImageBuffer toBGR();
public ImageBuffer toI420();
public ImageBuffer toNV12();
public ImageBuffer toNV21();
public void release();
}ImageBuffer
图像缓冲区类,用于访问图像数据。
支持的图像格式:
I420: YUV 4:2:0(3 平面,Y、U、V)NV12: YUV 4:2:0(2 平面,Y + UV)NV21: YUV 4:2:0(2 平面,Y + VU,Android 默认格式)RGBA,BGRA: 32 位 RGBA/BGRARGB,BGR: 24 位 RGB/BGRTexture: 纹理格式
图像旋转角度:
ROTATION_0: 0 度ROTATION_90: 顺时针旋转 90 度ROTATION_180: 顺时针旋转 180 度ROTATION_270: 顺时针旋转 270 度
属性访问:
getWidth(),getHeight(): 获取图像宽高getSize(): 获取图像数据大小(字节数)getStride(): 获取图像步长getFormat(): 获取图像格式
数据访问:
getData(): 获取图像原始数据(ByteBuffer)- YUV 格式专用:
getDataY(),getDataU(),getDataV(),getDataUV() - YUV 格式步长:
getStrideY(),getStrideU(),getStrideV(),getStrideUV()
资源管理:
isValid(): 检查缓冲区是否有效release(): 释放 native 资源
java
public enum Format {
I420(0), // YUV 4:2:0 12bpp (3 planes, Y, U, V)
NV12(1), // YUV 4:2:0 12bpp (2 planes, Y + UV)
NV21(2), // YUV 4:2:0 12bpp (2 planes, Y + VU, Android default)
BGRA(3), // BGRA 8:8:8:8 32bpp
RGBA(4), // RGBA 8:8:8:8 32bpp
BGR(5), // BGR 8:8:8 24bpp
RGB(6), // RGB 8:8:8 24bpp
Texture(7); // 纹理格式
}
public enum Rotation {
ROTATION_0(0), // 0度
ROTATION_90(1), // 顺时针旋转90度
ROTATION_180(2), // 顺时针旋转180度
ROTATION_270(3); // 顺时针旋转270度
}
public class ImageBuffer {
public int getWidth();
public int getHeight();
public int getSize();
public int getStride();
public Format getFormat();
public ByteBuffer getData();
public ByteBuffer getDataY();
public ByteBuffer getDataU();
public ByteBuffer getDataV();
public ByteBuffer getDataUV();
public int getStrideY();
public int getStrideU();
public int getStrideV();
public int getStrideUV();
public boolean isValid();
public void release();
}