经过互联网和科技的不断普及,人们的生活已经发生了翻天覆地的变化,几乎所有的行业都与互联网有所接轨,工作和生活也走向了科技化的道路。在大家日常生活中有许多显而易见的改变,各种新兴的娱乐方式也是充斥在互联网和生活之中,短视频直播平台就是个典型的例子。短视频平台之所以爆火是因为抓住了时代和人们的需求,这其中还有一定的科学依据,相关研究表明,人类在相同的单位时间内受到刺激程度会因为媒介产生变化,例如视频刺激会大于声音、图片、文字带来的刺激,短视频平台中五花八门的内容满足了人们的所有刺激需求,因此才会爆火,再就是短视频中的美颜滤镜SDK更是让人“流连忘返”,用过一次就再也忘不掉。

滤镜SDK接入短视频平台后展现出的效果非同凡响,它依靠图像增强技术,打造出多种不同风格的滤镜提供用户使用,例如:浪漫、清新、唯美、粉嫩等效果,用户可以使用多元化的滤镜实现不同风格的转变。很多用户经常向小编问起一个问题,“美颜滤镜SDK的代码是什么?”今天小编特意开一篇文章为大家解答一下。

  • (void)configureUI {

    NSArray arr = @[@“美颜”,@“美型”/,@“滤镜”*/];
    if (_segmentControl) {
    return;
    }
    _segmentControl = [[WNSegmentControl alloc] initWithTitles:arr];
    CGFloat bottom = _slider.frame.origin.y + _slider.frame.size.height;
    _segmentControl.frame = CGRectMake(0, bottom+20, window_width, MHStickerSectionHeight);
    ///修改MHUI
    _segmentControl.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:MHBlackAlpha];
    [_segmentControl setTextAttributes:@{NSFontAttributeName: Font_12, NSForegroundColorAttributeName: FontColorBlackNormal}
    forState:UIControlStateNormal];
    [_segmentControl setTextAttributes:@{NSFontAttributeName: Font_12, NSForegroundColorAttributeName: FontColorSelected}
    forState:UIControlStateSelected];
    _segmentControl.selectedSegmentIndex = 0;
    _segmentControl.widthStyle = WNSegmentedControlWidthStyleFixed;
    [_segmentControl addTarget:self action:@selector(switchList:) forControlEvents:UIControlEventValueChanged];
    [self addSubview:_segmentControl];
    [self addSubview:self.lineView];
    [self addSubview:self.beautyView];
    self.lastView = self.beautyView;
    ///修改MHUI
    [self addSubview:self.bottomView];
    self.slider.maximumValue = 9;
    NSInteger currentIndex = [self.beautyView currentIndex];
    if(currentIndex == 0 || currentIndex == -1){
    self.slider.hidden = YES;
    }

    [self.faceView configureFaceData];
    NSString *type = [[NSUserDefaults standardUserDefaults] objectForKey: @“MHSDKVersion”];
    _viewsArray = @[self.beautyView,self.faceView,self.filtersView];
    }

  • (void)configureSlider{
    // self.slider.maximumValue = 9;
    }
    #pragma mark - Action

  • (void)switchList:(WNSegmentControl *)segment {
    UIView *view = [self.viewsArray objectAtIndex:segment.selectedSegmentIndex];
    self.slider.hidden = [view isEqual:self.filtersView];
    self.assembleType = segment.selectedSegmentIndex;
    if ([view isEqual:self.beautyView]) {
    NSInteger current = [self.beautyView currentIndex];
    if (current == 0 || current == -1){
    self.slider.hidden = YES;
    }else{
    self.slider.hidden = NO;
    }
    NSString *faceKey = [NSString stringWithFormat:@“beauty_%ld”,(long)self.beautyType];
    NSInteger currentValue = [[NSUserDefaults standardUserDefaults] integerForKey:faceKey];
    [self.slider setValue:currentValue animated:YES];
    self.slider.maximumValue = 9;
    } else {
    self.slider.maximumValue = 100;
    }
    if ([view isEqual:self.faceView]) {
    NSInteger current = [self.faceView currentIndex];
    if (current == 0 || current == -1){
    self.slider.hidden = YES;
    }else{
    self.slider.hidden = NO;
    }
    [self.faceView configureFaceData];
    NSString *faceKey = [NSString stringWithFormat:@“face_%ld”,(long)self.faceType];
    NSInteger currentValue = [[NSUserDefaults standardUserDefaults] integerForKey:faceKey];
    [self.slider setValue:currentValue animated:YES];
    }

    if (![view isEqual:self.lastView]) {
    [self.lastView removeFromSuperview];
    }
    [self addSubview:view];
    self.lastView = view;
    ///修改MHUI
    [self bringSubviewToFront:self.bottomView];
    }

//slider 滑动修改对应的效果

  • (void)handleBeautyAssembleEffectWithValue:(NSInteger)value {
    switch (self.assembleType) {
    case 0:{
    if (self.isTXSDK) {
    [self handleBeautyEffectsOfTXWithSliderValue:value];
    } else {
    [self handleBeautyEffectsWithSliderValue:value];
    }
    }

          break;case 1:[self handleFaceEffectsWithSliderValue:value];break;case 2:[self handleQuickBeautyWithSliderValue:value];break;default:break;
    

    }
    }
    #pragma mark - 底部按钮响应

  • (void)cameraAction:(BOOL)isTakePhoto{
    NSLog(@“点击了拍照”);
    if (isTakePhoto) {
    if ([self.delegate respondsToSelector:@selector(takePhoto)]) {
    [self.delegate takePhoto];
    }
    }else{
    if ([self.delegate respondsToSelector:@selector(clickPackUp)]) {
    [self.delegate clickPackUp];
    }
    }

以上就是小编为大家整理的开源美颜滤镜SDK的部分代码,受限于篇幅问题暂时只讲这些,如果您对美颜技术感兴趣,请关注我!后续我会更新更多美颜技术相关话题。

开源美颜滤镜SDK代码解析相关推荐

  1. 美颜滤镜sdk常用的图形处理算法、代码分析

    美颜滤镜sdk目前在视频.图文社交平台中的使用率是非常高的,特别是短视频平台和直播平台.今天小编就为大家讲解一下美颜滤镜sdk经常用到的算法和代码. 一.预处理算法.检测算法 在采集完图像后,首先会对 ...

  2. 美颜滤镜sdk是什么?

    时下,大家在拍摄人像图片或者视频时都会使用滤镜进行润色,以此提高质感.当然,小编在这里所说的"滤镜"可不是很久之前那种套在相机镜头前的硬件滤镜,而是美颜滤镜sdk,目前已经有许多平 ...

  3. 美颜滤镜SDK有什么效果?美颜SDK可以自主开发吗?

    当下,短视频和直播平台在互联网娱乐APP类中保持着极高的人气,特别是在年轻群体中,甚至已经成了人手必备.如今的年轻人喜欢追求新鲜事物,审美能力也有所提高,对自己外表比较严格,特别是在短视频和直播这种社 ...

  4. 常用的美颜滤镜sdk算法

    本文主要介绍常见的美颜滤镜SDK算法,包括 SRGB. HSL. Lab. JPEG. TIFF等.本文不会过多介绍算法原理,只是列举一些在实际项目中用到的滤镜效果,如: 1.色彩空间变换 2.颜色范 ...

  5. 在直播中,美颜滤镜SDK起到了什么作用,是在哪一阶段起的作用?

    美颜,到底是在直播的哪一步骤上场的呢? 这,要从直播软件的工作流程说起 一. 美颜SDK从哪里上场 1. 首先,主播端打开设备(摄像头),采集音视频信息,此时,美颜滤镜SDK开始运转,对视频进行处理 ...

  6. 开源搜索项目-倒排索引代码解析(一)

    转载:http://www.mingyuanfeng.co.cc/search/label/%E5%80%92%E6%8E%92%E7%B4%A2%E5%BC%95%EF%BC%8C%E5%BC%80 ...

  7. AI美颜SDK功能算法代码解析

    AI美颜这个概念是近几年所兴起的新技术,它是以海量数据为中心,以人工智能.深度学习的方式实现智能美颜的算法. 一.AI美颜算法与传统美颜算法有哪些区别? 从浅显的角度来看,AI美颜算法与传统美颜算法呈 ...

  8. 视频直播美颜SDK算法代码解析

    随着短视频.直播软件一类app的流行,美颜sdk的应用也越来越广泛.所谓"美颜",简单解释下,就是通过视频(图片)技术对人脸进行美化.但是就"美化"这个词,却牵 ...

  9. 直播一对一源码主播美颜SDK代码分享

    这是一篇关于直播一对一源码主播美颜SDK代码分析,仅供码农参考. /** Created by cxf on 2017/9/1. 直播一对一源码主播直播间美颜,滤镜等效果 */ case Beauty ...

  10. 视觉SLAM开源算法ORB-SLAM3 原理与代码解析

    来源:深蓝学院,文稿整理者:何常鑫,审核&修改:刘国庆 本文总结于上交感知与导航研究所科研助理--刘国庆关于[视觉SLAM开源算法ORB-SLAM3 原理与代码解析]的公开课. ORB-SLA ...

最新文章

  1. 当个新手很幸福!网络创业之新手小白一样可以吸粉又赚钱
  2. 免费的网络推广教大家新站点前期优化如何进行?
  3. 设置zookeeper开机自启动
  4. pandas 检查某个元素是否在index中
  5. 工信部:老年人拨打三大运营商客服享受一键呼入等服务
  6. 基于CAS实现SSO单点登录
  7. 元素增删事件DOMNodeInserted和DOMNodeRemoved
  8. 20190903:(leetcode习题)颠倒二进制位
  9. Java中常见的URL问题及解决方案
  10. Delphi运行期错误
  11. 5. DICOM图像层级分类-DCMTK-压缩图像PixelData读取
  12. Java实现分页功能常见的几种方法
  13. 服务器数据恢复建议_raid磁盘阵列OFFLINE后的应急处理方案
  14. 刘宇辰java_大家帮忙取名字啊
  15. Python jieba库的安装
  16. 打造室内 “店铺级” 定位的 Petal Maps Platform,正在重塑数字生活新范式
  17. 【牛投客】;牛投客最新消息
  18. day1(Python爬虫:天气
  19. Python整数类型
  20. android背景图片高度,Android ImgaView背景图片不失真处理

热门文章

  1. 医疗器械信息系统分析
  2. 解决Keil4与Keil5在同系统不能共存的问题
  3. 盘点丨12款数据库建模工具特点,总有一款适合你!
  4. 简述前端MVVM框架
  5. h3c交换机限制端口访问_勒索病毒,华为/H3C三层交换机/路由器用ACL访问控制实现端口禁用...
  6. blender做MMD心得(一)
  7. abc物动量分析计算机视频,物动量ABC分类法
  8. stc15f2k60s2单片机开发环境构建
  9. ftl 页面使用java代码_在FTL文件中使用自定义的Java方法
  10. WPS Mac旧版该怎么彻底卸载干净