美文网首页iOS 底层面试
01 开启你的GPUImage之旅

01 开启你的GPUImage之旅

作者: CC老师_HelloCoder | 来源:发表于2017-07-22 23:04 被阅读0次

    前言

    GPUImage是现在做滤镜最流行的开源框架。是Brad Larson在gitHub托管的一个开源项目。项目实现了图片滤镜、摄像头实时滤镜,该项目的优点不但在于滤镜很多,而且处理效果基于GPU,比使用CPU性能更高。

    在我的关于GPUImage文档翻译中,也提到了它的底层实际上是基于多个框架。

    例如:

             CoreMedia

              CoreVideo

             OpenGL ES

             AV Foundation

              QuartzCore

    大部分开发会使用GPUImage 框架 与苹果原生框架 Core Image。

    二、比较Core Image 、GPUImage框架

       CoreImage框架,可以使用CIFiter内置的滤镜、使用框架内置的人脸检测、固定颜色的透明度剔除、能够移轴的高斯模糊等等。

      虽然使用CoreImage框架能够满足大部分日程图片的滤镜处理之类的需求,而且是系统内置框架。性能上肯定是经过一番考究的。但是其中的API使用起来比较麻烦,尤其是基于对摄像头的数据流的实时滤镜(目前大部分直播的APP要求这个功能),使 用起来会有比较大的挑战。

       GPUImage框架是目前比较主流的一款开源的图像处理框架。有iOS版也有安卓版,也推出了Swift版。在多平台选择性上没有顾虑。GPUImage隐藏了在iOS所用需要使用OpenGL ES的复杂代码,并用极其简单的接口以很快的速度处理图像。GPUImage的性能甚至在很多时候击败了CoreImage。

       GPUImage最大的优点就是使用简便,它内部封装了许多滤镜,类似亮度滤镜、对比度滤镜、灰度滤镜、双边滤波等等。而且还有许多现成的卡通,黑白版,高斯模糊之类的滤镜效果。可以对stillImage静态图片处理,也可以创建camera并随意组合滤镜效果来构建一个摄像头实时滤镜。制作一些常用的滤镜、磨皮美颜效果都很方面。

    三、使用CocoaPods 导入GPUImage框架

      关于CocoaPods 是什么?如何安装?以及它的好处,我就不在这儿赘述。相信大多数开发者已经感受了它的魅力了。

    具体步骤:

        第一步

                     终端输入:pod search GPUImage

        第二步:

                    在工程中创建一个Podfile文件

                     终端输入:cd/Users/liuyi/Desktop/CocoaPodsTest

                     终端输入:touch Podfile

                     打开项目中的Podfile文件,拷贝如下内容:

                      platform :ios, ‘7.0'

                      target ‘GPUImageTest’ do

                      pod ‘GPUImage’

                       end

           第三步: 把GPUImage库下载到Xcode 中

                      终端输入:podinstall

      这就开始下载了,需要一段时间。稍微等待即可。当出现bogon:cocoPodsTest liuyi$  则下载成功。

      这个时候关闭所有的Xcode窗口,再次打开工程目录就会看到多一个后缀名为.xcworkspace文件。以后打开工程就双击这一个文件打开即可。不再是.xcodeproj文件

    四、你的第一个GPUImage 项目

    五、效果对比

    原始图片

    代码黑白效果图:

    嗯。这个demo就写完了。话说,鹿晗的迷妹们,会不会吊打CC...哈哈,求放过,一个demo而已。就因为你家鹿晗帅。。。。哈哈。。。。。

    小伙伴们阅读后,请喜欢一下。文章更新可以提醒到你哦~~~~

    相关文章

      网友评论

        本文标题:01 开启你的GPUImage之旅

        本文链接:https://www.haomeiwen.com/subject/pdkpkxtx.html