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

    参考:Gaos的BLOG

    1 下载源码:

     https://github.com/BradLarson/GPUImage

    2编译;打开iOS的项目文件;build真机

    成果物是一个静态库;注意github上还提供了很多example;

    在这里并没有生成头文件usr(头文件,demo中要用的一个集合)文件夹,我们可以编译的时候选择编译framework,他会生成一个头文件夹,里边头文件基本是全的【这样就不用你一个个的收集头文件放到demo里了,他给你放在一起了】(你在demo中需要引入的头文件);

    然后把静态库和头文件放到你的demo里;

    demo-build setting ---search paths --library search paths 加上静态库和头文件的路径;

    demo中引入:

    #import "GPUImage.h";使用如下;下边是一个使用亮度滤镜的demo;你可以自己决定使用哪个过滤器;里边就是一个滤镜链条处理

      UIImage * orangeimage = [UIImage imageNamed:@"tupian.PNG"];
        
        GPUImageBrightnessFilter* shineFilter = [[GPUImageBrightnessFilter alloc]init];
        
        shineFilter.brightness = -0.7f;
        
        [shineFilter forceProcessingAtSize:orangeimage.size];
        
        [shineFilter useNextFrameForImageCapture];//没有这句话显示不了
        
        GPUImagePicture* pic = [[GPUImagePicture alloc]initWithImage:orangeimage];
        
        [pic addTarget:shineFilter];
        
        [pic processImage];
        
        UIImage * afterPic = [shineFilter imageFromCurrentFramebuffer];
        
        UIImageView* subview = [[UIImageView alloc]initWithImage:afterPic];
        subview.frame = CGRectMake(0, 0, _FilterView.bounds.size.width, _FilterView.bounds.size.height);
        [_FilterView addSubview:subview];

     例1:

    //基于阈值的边缘检测,适用于灰度图
    
     UIImage * orangeimage = [UIImage imageNamed:@"lian.png"];
        
        GPUImageThresholdEdgeDetectionFilter* shineFilter = [[GPUImageThresholdEdgeDetectionFilter alloc]init];
        
        shineFilter.threshold = 0.2;
     

    边缘检测结果:(受显示窗口影响,图像有一点形变;左原图,右边缘检测)

     例2:水晶球,设置个球心

    UIImage * orangeimage = [UIImage imageNamed:@"lian.png"];
        
        GPUImageGlassSphereFilter* shineFilter = [[GPUImageGlassSphereFilter alloc]init];
        
        shineFilter.center = CGPointMake(0.5f, 0.5f);

    例三:浮雕

    UIImage * orangeimage = [UIImage imageNamed:@"lian.png"];
        
        GPUImageEmbossFilter* shineFilter = [[GPUImageEmbossFilter alloc]init];
        
        shineFilter.intensity = 2.0;//强度

     例4:哈哈镜:

     UIImage * orangeimage = [UIImage imageNamed:@"lian.png"];
        
        GPUImageStretchDistortionFilter* shineFilter = [[GPUImageStretchDistortionFilter alloc]init];
        
        shineFilter.center =CGPointMake(0.5, 0.3);
     

    例5:卡通;

     UIImage * orangeimage = [UIImage imageNamed:@"lian.png"];
        
        GPUImageToonFilter* shineFilter = [[GPUImageToonFilter alloc]init];
        
        shineFilter.quantizationLevels = 8.0;//量化等级
        shineFilter.threshold = 0.3;

    还有很多效果,可以使用。。。。。。。。

  • 相关阅读:
    New Concept English three (33)
    New Concept English three (32)
    New Concept English three (31)
    2017.11.03 正确查找datasheet+ 英语邮件+英语会议
    New Concept English three (30)
    PyQt(Python+Qt)学习随笔:Qt Designer中窗口对象的windowFilePath属性
    PyQt(Python+Qt)学习随笔:Qt Designer中部件的locale属性
    PyQt(Python+Qt)学习随笔:Qt Designer中部件的autoFillBackground属性
    PyQt(Python+Qt)学习随笔:Qt Designer中部件的样式表styleSheet属性
    PyQt(Python+Qt)学习随笔:Qt Designer中部件的layoutDirection属性
  • 原文地址:https://www.cnblogs.com/8335IT/p/15091900.html
Copyright © 2011-2022 走看看