扫一扫咨询方案
首页
登录/注册

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
产品简介
安卓端 SDK
iOS SDK
服务端 SDK
开发指南
Demo 下载
用户常见问题
首页 > iOS SDK > 摄像机模板接入 > 滤镜

滤镜

更新时间 : 2023-07-18 09:33:39

滤镜

滤镜通过SXFilter添加到相机模板中
以下是SXFilter的头文件

//滤镜切换的方向
typedef enum : NSUInteger {
    SXFilterTransitDirectionRightToLeft = 0,
    SXFilterTransitDirectionLeftToRight,
    SXFilterTransitDirectionBottomToTop,
    SXFilterTransitDirectionTopToBottom,
} SXFilterTransitDirection;

@interface SXFilter : NSObject
//滤镜名称
@property (nonatomic, copy, readonly) NSString *name;
//滤镜版本号
@property (nonatomic, strong, readonly) NSString *version;
//滤镜透明度
@property (nonatomic, assign, readonly) float alpha;

/**
 * 初始化一个滤镜实例
 * @param filePath 滤镜文件夹路径
 * @return 滤镜实例
 */
- (instancetype)initWithFilePath:(NSString *)filePath;
/**
 检测滤镜的 version 是否被当前引擎全部支持

 @return  1 表示滤镜版本高于引擎版本,不是完整支持, 返回 0, -1 表示可以完整支持
 */
- (int)compareWithCurrentVersion;
@end

代码示例:
添加滤镜


 //创建一个滤镜
 SXFilter *filter = [[SXFilter alloc] initWithFilePath:@"滤镜地址"];
 //添加到模板中
 [mTemplate setFilter:filter];

关闭滤镜

 //关闭滤镜
  SXFilter *filter = [[SXFilter alloc] init];
  [mTemplate setFilter:filter];

SXTemplate相机模板常用功能

/**
 设置滤镜透明度
 @param alpha 滤镜透明度
 */
- (void)setFilterAlpha:(float)alpha;
/**
 预加载一个滤镜,为动态滤镜切换做准备。
 同一时间最多只有一个正在使用的滤镜,同方向上只有一个预加载的滤镜。
 @param filter 需要预加载的滤镜
 @param direction 预加载的滤镜方向
 */
- (void)preloadFilter:(SXFilter *)filter direction:(SXFilterTransitDirection)direction;
/**
 过渡到目前已经预加载的滤镜。
 @param progress 滤镜切换进度
 @param direction 滤镜切换方向
 */
- (void)transitToFilter:(float)progress direction:(SXFilterTransitDirection)direction;

//示例代码

//设置滤镜透明度
[mTemplate setFilterAlpha:alpha];

//滤镜预加载
NSMutableArray *filterArray = [NSMutableArray array];
for (int i = 1; i <= 6; i++) {
    SXFilter *filter = [[SXFilter alloc
                          ] initWithFilePath:@"滤镜地址"];
    [filterArray addObject:filter];
}

[mTemplate preloadFilter:filterArray[currentIndex] direction:SXFilterTransitDirectionLeftToRight];

//滑动切换滤镜 progress滑动进度 direction滑动方向
[mTemplate transitToFilter:fabs(progress) direction:progress > 0 ? SXFilterTransitDirectionLeftToRight : SXFilterTransitDirectionRightToLeft];
首页 > iOS SDK > 摄像机模板接入 > 滤镜
滤镜
更新时间 : 2023-07-18 09:33:39
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

滤镜

滤镜通过SXFilter添加到相机模板中
以下是SXFilter的头文件

//滤镜切换的方向
typedef enum : NSUInteger {
    SXFilterTransitDirectionRightToLeft = 0,
    SXFilterTransitDirectionLeftToRight,
    SXFilterTransitDirectionBottomToTop,
    SXFilterTransitDirectionTopToBottom,
} SXFilterTransitDirection;

@interface SXFilter : NSObject
//滤镜名称
@property (nonatomic, copy, readonly) NSString *name;
//滤镜版本号
@property (nonatomic, strong, readonly) NSString *version;
//滤镜透明度
@property (nonatomic, assign, readonly) float alpha;

/**
 * 初始化一个滤镜实例
 * @param filePath 滤镜文件夹路径
 * @return 滤镜实例
 */
- (instancetype)initWithFilePath:(NSString *)filePath;
/**
 检测滤镜的 version 是否被当前引擎全部支持

 @return  1 表示滤镜版本高于引擎版本,不是完整支持, 返回 0, -1 表示可以完整支持
 */
- (int)compareWithCurrentVersion;
@end

代码示例:
添加滤镜


 //创建一个滤镜
 SXFilter *filter = [[SXFilter alloc] initWithFilePath:@"滤镜地址"];
 //添加到模板中
 [mTemplate setFilter:filter];

关闭滤镜

 //关闭滤镜
  SXFilter *filter = [[SXFilter alloc] init];
  [mTemplate setFilter:filter];

SXTemplate相机模板常用功能

/**
 设置滤镜透明度
 @param alpha 滤镜透明度
 */
- (void)setFilterAlpha:(float)alpha;
/**
 预加载一个滤镜,为动态滤镜切换做准备。
 同一时间最多只有一个正在使用的滤镜,同方向上只有一个预加载的滤镜。
 @param filter 需要预加载的滤镜
 @param direction 预加载的滤镜方向
 */
- (void)preloadFilter:(SXFilter *)filter direction:(SXFilterTransitDirection)direction;
/**
 过渡到目前已经预加载的滤镜。
 @param progress 滤镜切换进度
 @param direction 滤镜切换方向
 */
- (void)transitToFilter:(float)progress direction:(SXFilterTransitDirection)direction;

//示例代码

//设置滤镜透明度
[mTemplate setFilterAlpha:alpha];

//滤镜预加载
NSMutableArray *filterArray = [NSMutableArray array];
for (int i = 1; i <= 6; i++) {
    SXFilter *filter = [[SXFilter alloc
                          ] initWithFilePath:@"滤镜地址"];
    [filterArray addObject:filter];
}

[mTemplate preloadFilter:filterArray[currentIndex] direction:SXFilterTransitDirectionLeftToRight];

//滑动切换滤镜 progress滑动进度 direction滑动方向
[mTemplate transitToFilter:fabs(progress) direction:progress > 0 ? SXFilterTransitDirectionLeftToRight : SXFilterTransitDirectionRightToLeft];