zoukankan      html  css  js  c++  java
  • GPUImage实现过程

    GPUImage就是一个函数的类库,用于对图片实现滤镜的效果。

    下面是实现一个最简单的GPUImage的程序和讲解:

    首先新建一个项目,导入GPUImage类库(导入过程在我的另一个博客里面有写)。

    然后在ViewController的头文件里面添加GPUImage.h,然后在实现文件里面开始写函数。

    实现的基本流程和代码如下:

        //设置图片

        UIImage * inputImage = [UIImage imageNamed:@"sample1.jpg"];

        

        //获取视图

        GPUImageView * imageView = (GPUImageView *)self.view;

        

        //把图片加载到GPU

        GPUImagePicture * sourcePicture;

        sourcePicture = [[GPUImagePicture alloc] initWithImage:inputImage smoothlyScaleOutput:YES];

        

        //初始化滤镜

        GPUImageTiltShiftFilter * tiltShiftFilter = [[GPUImageTiltShiftFilteralloc] init];

        

        //三个步骤显示图片

        [sourcePicture addTarget:tiltShiftFilter];

        [tiltShiftFilter addTarget:imageView];

        [sourcePicture processImage];

    个人的理解:
    第一步是将图片通过UIImage导入程序
    然后获取当前的视图并转化成GPU视图(这一步其实这样写不好,GPUImageVIew其实功能跟UIImageView是一样的,就是一个显示图片的控件,所以这一步是把GPUImageView添加到主视图上,用AddSubView方法更好一点)
    然后把UIImage转化成GPU图片
    初始化一个滤镜
    把GPU图片委托给滤镜,滤镜委托给GPU视图,然后运行GPU图片的时候会连带委托一起运行。

    这只是一个最最简单基础的滤镜,当然后面如果还有更加复杂的滤镜操作方式我会继续更新。

  • 相关阅读:
    Linux下使用ps命令来查看Oracle相关的进程
    虚继承、虚基类
    C++/C小知识点(2)
    C++中的运行中动态类型识别RTTI
    什么应该放在头文件?何为外连接?
    Placement new、operator new、new operator 完全释疑
    二叉搜索树
    Linux C编程学习资料,学习过程
    独立对象(非附属对象)大小
    编程珠玑第一章、第二章
  • 原文地址:https://www.cnblogs.com/wisejoker/p/3399856.html
Copyright © 2011-2022 走看看