zoukankan      html  css  js  c++  java
  • GPUImage做滤镜

    IOS端滤镜开源代码比较少,基本上强大的就是GPUImage了,操作简单而且强大。
    基本功能可以实现,相机,摄像以及静态图片的滤镜

    live filter:
    调用GPUImageStillCamera 作为相机,并将相机添加到一个GPUImageView中
    _stillCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
    切记使用小一些的尺寸initWithSessionPreset:AVCaptureSessionPreset640x480。否则会出现memory warning
    [_stillCamera addTarget:self.imageView];

    如果需要添加fiilter。就通过其中添加
    _cropFilter = [[GPUImageCropFilter alloc] initWithCropRegion:CGRectMake(0.0f, 0.0f, 1.0f
    , 0.96)];
    [_stillCamera addTarget:_cropFilter];
    [_cropFilter addTarget:self.imageView];
    如果是多个滤镜,则
    [_stillCamera addTarget:_cropFilter1];
    [_cropFilter1 addTarget:_cropFilter2];
    [_cropFilter2 addTarget:self.imageView];

    拍照后想生成图片
    [_stillCamera capturePhotoAsImageProcessedUpToFilter:lastFilter
    withCompletionHandler:^(UIImage *processed, NSError *error) ;

    lastFilter的解释为finalFilterInChain
    也就是说,需要使用最后一个addTarget进来的滤镜

    static filter:
    首先设置初始图片到GPUImagePicture
    _staticPicture=[[GPUImagePicture alloc]initWithImage:selectedImage smoothlyScaleOutput:NO];
    加filter与上面相同
    需要生成新的图片时,调用
    [_staticPicture processImage];
    [filter imageFromCurrentlyProcessedOutput];

    非常简单。附上过滤后的图

  • 相关阅读:
    php 生成带图片的二维码
    ajax 请求 添加正在加载中 遮罩层
    uedit上传图片时文件选择框延迟弹出的解决方法
    gulp基本用法
    JS引擎的执行机制
    前端知识体系
    css基础
    gulp使用入门
    AngularJS最佳实践
    Restful API 待更新。。。
  • 原文地址:https://www.cnblogs.com/yingkong1987/p/2993325.html
Copyright © 2011-2022 走看看