zoukankan      html  css  js  c++  java
  • GPUImage的使用

      最近在做一个3D模型换脸功能,用户用手机自拍,然后将3D人物模型的脸换成自己的。

      在这过程中,android端可以用美图秀秀的美颜库去美白,但是ios端就没有类似的东东,百度一下,会发现在github上有一个叫BeautifyFaceDemo的开源项目,可以实现实时美颜相机,可想而知实现美颜一张照片肯定没问题。然后开始研究,最后用上之后,效果还可以。

      下面记录一下调用过程:

      Step 1,从https://github.com/BradLarson/GPUImage下载GPUImage工程,从https://github.com/Guikunzhi/BeautifyFaceDemo下载BeautifyFaceDemo工程

      Step 2,新建Single View Application工程TestBeautifyFace,

          将GPUImage工程文件夹中的framework文件夹拖到TestBeautifyFace工程文件夹,

          在新工程中新建Framework文件夹,将GPUImage.xcodeproj文件拖拽添加到xcode Framework文件夹中,

          然后添加依赖:在Build Phases-Link Binary With Libraries中点+添加下面的framework:

                  CoreMedia,CoreVideo,OpenGLES,AVFoundation,QuartzCore,最后将libGPUImage.a文件也加进来,不然链接时会报错……

          在Build Settings的Header Search Paths项中配置头文件搜索路径,将包含GPUImage的framework路径添加进来,我的是放在TestBeautifyFace工程文件同一级,所以是:framework/**  (**表示包含目录及所有子目录)

      Step 3, 使用GPUImage:

           为了节约时间,直接上老外的代码^_^:

     1 GPUImageFilter *selectedFilter;
     2      
     3     switch (buttonIndex) {
     4         case 0:
     5             selectedFilter = [[GPUImageGrayscaleFilter alloc] init];
     6             break;
     7         case 1:
     8             selectedFilter = [[GPUImageSepiaFilter alloc] init];
     9             break;
    10         case 2:
    11             selectedFilter = [[GPUImageSketchFilter alloc] init];
    12             break;
    13         case 3:
    14             selectedFilter = [[GPUImagePixellateFilter alloc] init];
    15             break;
    16         case 4:
    17             selectedFilter = [[GPUImageColorInvertFilter alloc] init];
    18             break;
    19         case 5:
    20             selectedFilter = [[GPUImageToonFilter alloc] init];
    21             break;
    22         case 6:
    23             selectedFilter = [[GPUImagePinchDistortionFilter alloc] init];
    24             break;
    25         case 7:
    26             selectedFilter = [[GPUImageFilter alloc] init];
    27             break;
    28         default:
    29             break;
    30     }
    31      
    32     UIImage *filteredImage = [selectedFilter imageByFilteringImage:originalImage];
    33     [self.selectedImageView setImage:filteredImage];
    View Code

      Step 4,使用美颜滤镜美颜一张照片:

          

    1     GPUImageBeautifyFilter *beautifyFilter = [[GPUImageBeautifyFilter alloc] init];
    2     UIImage *filteredImage = [beautifyFilter imageByFilteringImage:selectedImage];
    3     [self.selectedImageView setImage:filteredImage];
    View Code

      先写到这里,继续研究GPUImage~

      参考:http://code.tutsplus.com/tutorials/build-a-photo-app-with-gpuimage--mobile-12223

  • 相关阅读:
    数字货币量化分析[2018-06-04]
    主流币空转多。数字货币量化分析[2018-05-31]
    草莓糖CMT依旧强势,数字货币量化分析[2018-05-29]
    数字货币量化分析[2018-05-28]
    Python3中json的encode和decode
    如何选择数字货币交易所?
    数字货币量化分析[2018-05-27]
    数字货币量化分析[2018-05-26]
    Python3中的urlencode和urldecode
    Zipline Development Guidelines
  • 原文地址:https://www.cnblogs.com/luleigreat/p/5740296.html
Copyright © 2011-2022 走看看