美文网首页
GPUImage之美颜相机

GPUImage之美颜相机

作者: 红茶绅士 | 来源:发表于2017-07-06 17:07 被阅读393次

    相关类

    • GPUImageStillCamera是GPUImageVideoCamera的子类,两者的作用都是提供来自摄像头的图像数据,区别如下:

    • GPUImageStillCamera - 摄像头-照相(今天要用到的就是这个)

    • GPUImageVideoCamera - 摄像头-视频流

    • GPUImageFilter的作用是添加各种滤镜

    • GPUImageView一般作为预览层,用于显示GPUImage采集到的图像

    整个事件响应链

    GPUImageStillCamera -> GPUImageFilter -> GPUImageView

    实现过程

    懒加载摄像头,滤镜相关对象

    //高清前置摄像头
    fileprivate lazy var camera : GPUImageStillCamera = GPUImageStillCamera(sessionPreset: AVCaptureSessionPresetHigh, cameraPosition: .front)
    //美白滤镜
    fileprivate lazy var filter = GPUImageBrightnessFilter()
    

    设置摄像头,滤镜相关属性

    //摄像头竖屏显示
    camera.outputImageOrientation = .portrait
      
    //设置滤镜亮度
    filter.brightness = 0.2
    //添加滤镜
    camera.addTarget(filter)
       
    //创建GPUImageView,用于显示实时画面
    let showView = GPUImageView(frame: view.bounds)
    view.insertSubview(showView, at: 0)
    filter.addTarget(showView)
        
    //开始捕捉画面
    camera.startCapture()
    

    实现拍照按钮点击事件,保存图片到图库

    camera.capturePhotoAsImageProcessedUp(toFilter: filter) { (image, error) in     
            //保存图片
            UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil)    
            self.camera.stopCapture()
    }
    

    注意事项

    • 必须使用真机调试
    • 在info.plist中设置调起相机,图库的相关权限
    • Privacy - Camera Usage Description
    • Privacy - Photo Library Usage Description

    Demo地址

    相关文章

      网友评论

          本文标题:GPUImage之美颜相机

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