GpuImage简单使用

声明变量

@interface **********
{
    GPUImageVideoCamera *Camera;
    GPUImageOutput *Filters;
    GPUImageView *CameraShowView;
}

首先是Camera,一种是GPUImageStillCamera,另一个种为GPUImageVideoCamera.正如其命名,如果只是拍照使用前者.录制视频使用后者.

    //init, 第一个参数分辨率 第二个参数,前后摄像头选择
    Camera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionFront];
    Camera.outputImageOrientation = UIInterfaceOrientationPortrait;
    Camera.horizontallyMirrorFrontFacingCamera = NO;
    Camera.horizontallyMirrorRearFacingCamera = NO;

其次camera获取视频(图片)后,加以滤镜也就是filter, filter可以叠加,也可以自定义(比如美颜).

    //黑白滤镜
    Filters = [GPUImageColorPackingFilter new];
    //将将滤镜加至摄像头
    [Camera addTarget:Filters];

最后输出处理后的视频或图片,这里可以可以直接输出至屏幕,也可以使用GPUImageMovieWriter,也就是录制了.

    //用于显示视频的GPUImageView
    CameraShowView =   [[GPUImageView alloc] initWithFrame:CGRectMake(0, 64,self.view.frame.size.width,self.view.frame.size.width*1.25)];
    [CameraShowView setInputRotation:kGPUImageFlipHorizonal atIndex:0];
    CameraShowView.fillMode = kGPUImageFillModePreserveAspectRatioAndFill;
    [self.view addSubview:CameraShowView];
    //将视频输出到->CameraShowView
    [Filters addTarget:CameraShowView];

当然也不要忘记启动

    //视频启动
    [Camera startCameraCapture];

其他

//前后摄像头切换
-(void)VideoPosition:(UIButton*)Button{

    [Camera rotateCamera];

    Button.selected = !Button.selected;
}

//闪关灯
-(void)LightBtn:(UIButton*)Btn{

    if (Camera.inputCamera.position == AVCaptureDevicePositionBack) {

        if (Btn.selected) {

            [Camera.inputCamera lockForConfiguration:nil];
            [Camera.inputCamera setTorchMode:AVCaptureTorchModeOff];
            [Camera.inputCamera unlockForConfiguration];

        }else{

            [Camera.inputCamera lockForConfiguration:nil];
            [Camera.inputCamera setTorchMode:AVCaptureTorchModeOn];
            [Camera.inputCamera unlockForConfiguration];
        }

        Btn.selected = !Btn.selected;

    }else{

        NSLog(@"当前使用前置摄像头,未能开启闪光灯");

    }

}

未完待续,算是挖坑. 后续也就是滤镜切换,视频的简单剪辑...

时间: 2024-11-08 20:39:00

GpuImage简单使用的相关文章

GPUImage简单滤镜使用(二)

GPUImage中,提供了许多简单的的常用的滤镜.在上一篇文章讲了如何调节图像的亮度这片文章讲一下如何通过GPUImage调节图像的对比度,饱和度,曝光度,和白平衡(美图秀秀中的色温). 原图像 调整图像的对比度 GPUImageContrastFilter类提供了此功能.该类中有一个属性contrast,我们可以通过修改此属性值(最大值4.0,最小值0.0,正常值1.0)来达到修改图像对比度的目的,使用方法: GPUImageContrastFilter *filter = [[GPUImag

图像处理库GPUImage简单使用

一.介绍 GPUImage是一个基于OpenGL ES 2.0的开源的图像处理库,作者是Brad Larson.GPUImage将OpenGL ES封装为简洁的Objective-C或Swift接口,可以用来给图像.实时相机视频.电影等添加滤镜. 二.使用 1.导入GPUImage两种方式 a.使用 cocopods导入 platform :ios, '9.0' target 'GPUImageDemo' do pod 'GPUImage' end 注:给项目添加cocopods等操作在此不做多

关于开源框架GPUImage 的简单说明

GPUImage是一个非常棒的图像处理的开源库,里面提供了非常非常多的滤镜效果来加工图片. 不过就是因为太多效果了,而且对于程序员来说,那么多效果并不清楚知道要用那一个.于是我就使用提供的默认值,加上对滤镜的命名的理解,粗略简单地对GPUImage.h里引用的各个滤镜进行简要说明.这样方便以后找到想要的滤镜效果.其中可能有理解错误,或者表达不准确的地方还请大家斧正.其中有些效果需要使用摄像头才可能有比较理想的效果. 附上注释的GPUImage.h代码: #import "GLProgram.h&

iOS --- 使用GPUImage实现的简单滤镜效果

GPUImage 是一个基于 GPU 图像和视频处理的开源 iOS 框架.由于使用 GPU 来处理图像和视频,所以速度非常快. 除了速度上的优势,GPUImage 还提供了很多很棒的图像处理滤镜,但有时候这些基本功能仍然无法满足实际开发中的需求,GPUImage 还支持自定义滤镜. 简单滤镜 GPUImageSepiaFilter *filter = [[GPUImageSepiaFilter alloc] init]; _filteredImage = [filter imageByFilte

GPUImage的简单使用

GPUImage 是一个开源的图像处理库,提供了非常多的滤镜效果来加工图片.GPUImage 并不像一般的第三方库可以直接拖入到工程中使用,而是需要先在本地编译,然后将编译后的文件拖入到工程中使用.配置步骤如下: (1):首先下载GPUImage  https://github.com/BradLarson/GPUImage (2):解压后,在framework 目录下,打开 GPUImage.xcodeproj  工程 (3): 把Headers文件夹下 Project中的头文件,全部拖到 P

iOS GPUImage的简单说明

#import "GLProgram.h" // Base classes #import "GPUImageOpenGLESContext.h" #import "GPUImageOutput.h" #import "GPUImageView.h" #import "GPUImageVideoCamera.h" #import "GPUImageStillCamera.h" #impo

iOS上用GPUImage给视频加滤镜

最近在做一个需要给已有视频加滤镜的app,不是实时滤镜,而是给已经存在的视频加滤镜. 虽然网上有很多关于GPUImage的博客,但大多都是给图片加上滤镜或者是直接在摄像头上加上的实时滤镜,找了很久之后..... 发现在github上本来就有..... 但是在网上找,却没有说很多人给出这样的滤镜教程,这里简单给分享一下下. 1. 首先,什么是GPUImage?详细请度娘之,简单点来说,就是一个用GPU来处理图片和视频的第三方库. 2. 给图像加滤镜,如果是只加滤镜,那么网上有很多的教程,这里就不细

GPUImage

GPUImage是一个非常棒的图像处理的开源库,里面提供了非常非常多的滤镜效果来加工图片. 不过就是因为太多效果了,而且对于程序员来说,那么多效果并不清楚知道要用那一个.于是我就使用提供的默认值,加上对滤镜的命名的理解,粗略简单地对GPUImage.h里引用的各个滤镜进行简要说明.这样方便以后找到想要的滤镜效果.其中可能有理解错误,或者表达不准确的地方还请大家斧正.其中有些效果需要使用摄像头才可能有比较理想的效果. 附上注释的GPUImage.h代码: #import "GLProgram.h&

GPUImage ==> 一个基于GPU图像和视频处理的开源iOS框架

Logo 项目介绍: GPUImage是Brad Larson在github托管的开源项目. GPUImage是一个基于GPU图像和视频处理的开源iOS框架,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜: 基于GPU的图像加速,因此可以加速对实时摄像头视频.电影以及image的滤镜和其它效果处理,并且能够自定义图像滤镜.另外, GPUImage支持ARC. 使用GPUImage处理图片比Core Image更简单,只需要将过滤器赋给图片对象即可,不用考虑context或者设备等其