Classes

The following classes are available globally.

  • Undocumented

    See more

    Declaration

    Objective-C

    @interface QEPixelBufferData : NSObject
    
    /**
     * 需要处理的CVPixelBuffer。
     */
    @property (nonatomic, assign) CVPixelBufferRef bufferIn;
    
    /**
     * 处理完后的CVPixelBuffer。
     */
    @property (nonatomic, assign) CVPixelBufferRef bufferOut;
    
    /**
     * bufferIn中如果存在人脸/人体,人脸/人体顺时针旋转到正向所需要的角度,值为0/90/180/270,默认值为0。
     * 注意:仅当QueenEngineConfigInfo的autoSettingImgAngle设置为NO才会生效。
     */
    @property (nonatomic, assign) size_t inputAngle;
    
    /**
     * 识别到的正向人脸/人体结果需要逆时针旋转的角度,值为0/90/180/270,默认值为0。
     * 注意:仅当QueenEngineConfigInfo的autoSettingImgAngle设置为NO才会生效。一般情况下设置的值应该要和inputAngle一致,才会使得识别到的人脸/人体结果坐标位置和原图像贴合。
     */
    @property (nonatomic, assign) size_t outputAngle;
    
    /**
     * 识别到的人脸/人体结果坐标需要翻转的方向,默认值为kQueenBeautyFlipAxisNone。
     */
    @property (nonatomic, assign) kQueenBeautyFlipAxis outputFlipAxis;
    
    /**
     * 需要处理的CMSampleBuffer。
     */
    @property (nonatomic, assign) CMSampleBufferRef sampleBufferIn;
    
    @end
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface QETextureData : NSObject
    
    /**
     * 需要处理的OpenGL纹理ID。
     */
    @property (nonatomic, assign) uint32_t inputTextureID;
    
    /**
     * 处理完后的OpenGL纹理ID。
     */
    @property (nonatomic, assign) uint32_t outputTextureID;
    
    /**
     * OpenGL纹理的宽度。
     */
    @property (nonatomic, assign) int width;
    
    /**
     * OpenGL纹理的高度。
     */
    @property (nonatomic, assign) int height;
    
    @end
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface QEGestureData : NSObject
    
    /**
     * 手势类型。
     */
    @property (nonatomic, assign) kQueenStaticGestureType gesture;
    
    /**
     * 动态手势类型。
     */
    @property (nonatomic, assign) kQueenHandActionType action;
    
    @end
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface QEFaceExpressionData : NSObject
    
    /**
     * 脸部表情类型。
     */
    @property (nonatomic, assign) kQueenFaceExpressionType expression;
    
    @end
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface QEAutoFaceShapeData : NSObject
    
    /**
     * 智能美型当前状态。
     */
    @property (nonatomic, assign) kQueenAutoFaceShapeStatus status;
    
    /**
     * 围绕X轴旋转,也叫做俯仰角。
     */
    @property (nonatomic, assign) float yaw;
    
    /**
     * 围绕Y轴旋转,也叫偏航角。
     */
    @property (nonatomic, assign) float pitch;
    
    /**
     * 围绕Z轴旋转,也叫翻滚角。
     */
    @property (nonatomic, assign) float roll;
    
    @end
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface QueenEngine : NSObject
    
    /** QueenEngine回调代理对象。
     */
    @property (nonatomic, weak) id <QueenEngineDelegate> delegate;
    
    /**
     * 获取版本号。
     */
    + (NSString *)getVersion;
    
    /**
     * 初始化引擎。
     * @param configInfo 配置信息。
     */
    - (instancetype)initWithConfigInfo:(QueenEngineConfigInfo *)configInfo;
    
    /**
     * 更新引擎配置参数。
     * 注意:仅当initWithConfigInfo的时候,configInfo为nil的时候此接口才生效,而且仅可设置一次有效值。
     * @param configInfo 配置信息。
     */
    - (void)updateConfigInfo:(QueenEngineConfigInfo *)configInfo;
    
    /**
     * 销毁引擎。
     * 注意:需要在渲染线程调用。
     */
    - (void)destroyEngine;
    
    /**
     * 高性能模式。
     * 注意:开启后效果会稍变差。
     * @param enabled YES/NO,默认NO。
     */
    - (void)powerSavingEnabled:(BOOL)enabled;
    
    /**
     * 设置渲染的viewport。
     * 注意:如果不设置默认使用输入的数据的宽和高。
     * @param originX 默认0
     * @param originY 默认0
     * @param width 默认0
     * @param height 默认0
     */
    - (void)setScreenViewportWithOriginX:(int)originX withOriginY:(int)originY withWidth:(int)width withHeight:(int)height;
    
    /**
     * 设置输出裁剪矩形。
     * 注意:如果不设置默认使用输入的数据的宽和高。
     * @param originX 默认0
     * @param originY 默认0
     * @param width 默认0
     * @param height 默认0
     */
    - (void)setOutputRectWithOriginX:(int)originX withOriginY:(int)originY withWidth:(int)width withHeight:(int)height;
    
    #pragma mark - "美颜类型和美颜参数API"
    
    /**
     * 打开或者关闭某个功能效果。
     * @param type kQueenBeautyType 类型的一个值。
     * @param enabled YES: 打开,NO:关闭。
     */
    - (void)setQueenBeautyType:(kQueenBeautyType)type enable:(BOOL)enabled;
    
    /**
     * 打开或者关闭某个功能效果。
     * @param type kQueenBeautyType 类型的一个值。
     * @param enabled YES: 打开,NO:关闭。
     * @param mode kQueenBeautyFilterMode 类型的一个值。
     */
    - (void)setQueenBeautyType:(kQueenBeautyType)type enable:(BOOL)enabled mode:(kQueenBeautyFilterMode)mode;
    
    /**
     * 设置功能参数。
     * @param param 功能参数类型,kQueenBeautyParams 中的一个。
     * @param value 需要设置的数值,参考kQueenBeautyParams的备注。
     */
    - (void)setQueenBeautyParams:(kQueenBeautyParams)param value:(float)value;
    
    /**
     * 获取功能参数。
     * @param param 功能参数类型,kQueenBeautyParams 中的一个。
     */
    - (float)getQueenBeautyParams:(kQueenBeautyParams)param;
    
    #pragma mark - "滤镜相关API"
    
    /**
     * 设置滤镜资源。
     * 注意:设置滤镜图片前需要将kQueenBeautyTypeLUT打开。
     * @param imagePath 所要设置的滤镜图片的地址。
     */
    - (void)setLutImagePath:(NSString *)imagePath;
    
    #pragma mark - "美型相关API"
    
    /**
     * 设置美型参数。
     * 注意:设置前需要将kQueenBeautyTypeFaceShape打开。
     * @param faceShapeType 美型类型,kQueenBeautyFaceShapeType 中的一个。
     * @param value 需要设置的数值,参考kQueenBeautyFaceShapeType的备注。
     */
    - (void)setFaceShape:(kQueenBeautyFaceShapeType)faceShapeType value:(float)value;
    
    #pragma mark - "美体相关API"
    
    /**
     * 设置美体参数。
     * 注意:设置前需要将kQueenBeautyTypeBodyShape打开。
     * @param bodyShapeType 美体类型,kQueenBeautyBodyShapeType 中的一个。
     * @param value 需要设置的数值,参考kQueenBeautyBodyShapeType的备注。
     */
    - (void)setBodyShape:(kQueenBeautyBodyShapeType)bodyShapeType value:(float)value;
    
    #pragma mark - "美妆相关api"
    
    /**
     * 设置美妆类型和图片素材路径。
     * 注意:设置前需要将kQueenBeautyTypeMakeup 打开。
     * @param makeupType 美妆类型,kQueenBeautyMakeupType 中的一个。
     * @param imagePaths 美妆素材地址集合。
     * @param blend 混合类型。
     */
    - (void)setMakeupWithType:(kQueenBeautyMakeupType)makeupType paths:(NSArray<NSString *> *)imagePaths blendType:(kQueenBeautyBlend)blend;
    
    /**
     * 设置美妆类型和图片素材路径。
     * 注意:设置前需要将kQueenBeautyTypeMakeup 打开。
     * @param makeupType 美妆类型,kQueenBeautyMakeupType 中的一个。
     * @param imagePaths 美妆素材地址集合。
     * @param blend 混合类型。
     * @param fps 对应的帧率
     */
    - (void)setMakeupWithType:(kQueenBeautyMakeupType)makeupType paths:(NSArray<NSString *> *)imagePaths blendType:(kQueenBeautyBlend)blend fps:(int)fps;
    
    /**
     * 设置美妆透明度,可指定性别。
     * @param makeupType 美妆类型。
     * @param isFeMale 是否是女性,女性:YES,男性:NO,(男性为接口预留,这里均传女性即YES即可)。
     * @param alpha 妆容透明度。
     */
    - (void)setMakeupAlphaWithType:(kQueenBeautyMakeupType)makeupType female:(BOOL)isFeMale alpha:(float)alpha;
    
    /**
     * 设置美妆类型的混合类型。
     * @param makeupType 美妆类型。
     * @param blend 混合类型。
     */
    - (void)setMakeupBlendWithType:(kQueenBeautyMakeupType)makeupType blendType:(kQueenBeautyBlend)blend;
    
    /**
     * 清除所有美妆。
     */
    - (void)resetAllMakeupType;
    
    #pragma mark - "头发美化相关API"
    
    /**
     * 设置头发颜色。
     * 注意:设置前需要将kQueenBeautyTypeHairColor 打开。
     * @param red [0,1]
     * @param green [0,1]
     * @param blue [0,1]
     */
    - (void)setHairColorWithRed:(float)red withGreen:(float)green withBlue:(float)blue;
    
    #pragma mark - "贴纸相关API"
    
    /**
     * 增加贴纸/贴图/实景抠图需要替换的背景,素材统一接口,支持GLTF,TAOPAI,MEDIAAI 类型。
     * @param materialPath 要添加的素材的路径。
     */
    - (void)addMaterialWithPath:(NSString *)materialPath;
    
    /**
     * 删除贴纸/贴图/实景抠图需要替换的背景。
     * @param materialPath 要删除的素材的路径。
     */
    - (void)removeMaterialWithPath:(NSString *)materialPath;
    
    #pragma mark - "抠图相关API"
    
    /**
     * 绿幕/蓝幕抠图。
     * 注意:开启此抠图功能,纯色背景抠图(setPureColorToBackground)会关闭。
     * @param backgroundImagePath 需要绿/蓝幕替换的背景资源路径,传空即为取消抠图功能。
     * @param blueScreenEnabled 是否蓝幕抠图。
     * @param threshold 幕布敏感度[1,10],默认1。
     * @param autoThresholdEnabled 是否根据环境动态计算幕布敏感度,为true时调节参数threshold失效,为false时调节参数threshold生效。
     */
    - (void)setGreenScreen:(NSString *)backgroundImagePath blueScreenEnabled:(BOOL)blueScreenEnabled threshold:(float)threshold autoThresholdEnabled:(BOOL)autoThresholdEnabled;
    
    /**
     * 纯色背景抠图。
     * 注意:开启此抠图功能,绿幕抠图(setGreenScreen)会关闭。
     * @param backgroundImagePath 需要纯色背景替换的背景资源路径,传空即为取消抠图功能。
     * @param colorType 需要被替换的颜色类型,0绿色(green),1蓝色(blue),2青色(cyan),3紫色(purple),4黄色(yellow),5红色(red),默认0。
     * @param threshold 颜色敏感度[-1, 1], 默认0。
     */
    - (void)setPureColorToBackground:(NSString *)backgroundImagePath colorType:(kQueenBeautyBgColorType)colorType threshold:(float)threshold;
    
    /**
     * 调整实景抠图的背景处理方式
     * @param backgroundProcessType 背景处理方式,默认为背景虚化
     */
    - (void)setSegmentBackgroundProcessType:(kQueenBackgroundProcessType)backgroundProcessType;
    
    /**
     * 设置实景抠像的性能模式。
     * 注意:在开启实景抠像功能前调用才能生效。
     * @param performanceMode 实景抠图的性能模式。
     */
    - (void)setSegmentPerformanceMode:(kQueenSegmentPerformanceMode)performanceMode;
    
    /**
     * 调整实景抠图的前景边距。
     * @param foregroundPadding 前景边距,[0,15],默认0。
     */
    - (void)setAISegmentForegroundPadding:(int)foregroundPadding;
    
    #pragma mark - "互动相关API"
    
    /**
     * AR写字/绘画。
     * @param enabled YES: 打开,NO:关闭。
     * @param mode 1: 写字, 2: 画画。
     */
    - (void)setARWriting:(BOOL)enabled mode:(int)mode;
    
    #pragma mark - "数据处理"
    
    /**
     * 人脸识别信息和渲染是否翻转以Y轴方向翻转。
     * @param faceRenderFlipY 需要关键点确定位置的图像渲染时是否反转,默认NO。
     * @param faceInfoFlipY 关键点数据是否翻转,默认NO。
     */
    - (void)setFaceRenderFlipY:(BOOL)faceRenderFlipY faceInfoFlipY:(BOOL)faceInfoFlipY;
    
    /**
     * 处理PixelBuffer类型数据。
     * @param pixelBufferData 需要处理的数据。
     * @return 接口调用状态码。
     */
    - (kQueenResultCode)processPixelBuffer:(QEPixelBufferData *)pixelBufferData;
    
    /**
     * 处理Texture类型数据。
     * @param textureData 需要处理的数据。
     * @return 接口调用状态码。
     */
    - (kQueenResultCode)processTexture:(QETextureData *)textureData;
    
    /**
     * 分析视频帧数据处理。
     * 注意:如处理Texture类型数据时需高级美颜处理需要调用此接口,处理PixelBuffer类型数据不需要调用此接口。
     * @param imageData 帧图片流。
     * @param format 帧图片流颜色格式。
     * @param width 帧图片宽度。
     * @param height 帧图片高度。
     * @param stride 用于检测的图像的跨度(以像素为单位),即每行的字节数, 默认情况下设为 0。
     * @param intputAngle 当前输入帧图片需旋转的角度,计算方式参考Sample工程,注:仅当QueenEngineConfigInfo的autoSettingImgAngle设置为NO才会生效。
     * @param outputAngle 算法输出结果所需旋转的角度,计算方式参考Sample工程,注:仅当QueenEngineConfigInfo的autoSettingImgAngle设置为NO才会生效。
     * @param flipAxis 输出数据的xy轴翻转处理,0为不旋转,1为x轴翻转,2为y轴翻转。
     */
    - (void)updateInputDataAndRunAlg:(uint8_t *)imageData withImgFormat:(kQueenImageFormat)format withWidth:(int)width withHeight:(int)height withStride:(int)stride
                      withInputAngle:(int)intputAngle withOutputAngle:(int)outputAngle withFlipAxis:(int)flipAxis;
    
    #pragma mark - "调试相关"
    
    /**
     * 展示人脸识别点位。
     * @param show 是否展示。
     */
    - (void)showFaceDetectPoint:(BOOL)show;
    
    /**
     * 展示人体识别点位。
     * @param show 是否展示。
     */
    - (void)showBodyDetectPoint:(BOOL)show;
    
    /**
     * 展示手部识别点位。
     * @param show 是否展示。
     */
    - (void)showHandDetectPoint:(BOOL)show;
    
    /**
     * 展示人脸区域三角剖分线。
     * @param show 是否展示。
     */
    - (void)showMakeupLine:(BOOL)show;
    
    /**
     * 展示AR绘制关键点。
     * @param show 是否展示。
     */
    - (void)showARWritingDetectPoint:(BOOL)show;
    
    @end
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface QueenEngineConfigInfo :NSObject
    
    /**
     * licenseKey 在申请 Queen 授权时获得。如果是老版本的客户,之前申请授权时没有收到 licenseKey 的,请联系商务获取。
     */
    @property (nonatomic, copy) NSString *licenseKey;
    
    /**
     * 内置证书文件路径
     */
    @property (nonatomic, copy) NSString *licenseFile;
    
    /**
     * Queen使用到的资源根目录,保持不变请为nil
     */
    @property (nonatomic, copy) NSString *resRootPath;
    
    /**
     * 是否内部自动创建GLContext,如果要处理CVPixelBuffer数据,需要设置为YES,默认为YES。
     */
    @property (nonatomic, assign) BOOL withContext;
    
    /**
     * 需要内部自动创建上下文的前提下,需要在创建引擎的时候同步创建GLContext,则设置为YES,默认为NO
     */
    @property (nonatomic, assign) BOOL createContextSync;
    
    /**
     * 是否要渲染到屏幕,默认为NO
     */
    @property (nonatomic, assign) BOOL toScreen;
    
    /**
     * 是否自动计算图像的inputAngle和outputAngle,默认为NO,API_AVAILABLE(ios(8.0))
     */
    @property (nonatomic, assign) BOOL autoSettingImgAngle;
    
    /**
     * 是否运行在自定义线程,默认为YES
     */
    @property (nonatomic, assign) BOOL runOnCustomThread;
    
    /**
     * 是否允许数据统计,默认为YES
     */
    @property (nonatomic, assign) BOOL enableStats;
    
    /**
     * 预留字段,选填
     */
    @property (nonatomic, copy) NSString *extraInfo;
    
    @end