LoginSignup
3
9

More than 5 years have passed since last update.

GPUImageでフィルターを重ねがけ

Last updated at Posted at 2017-07-27

カメラアプリでフィルターを掛けたい場合、GPUImageはお手軽にサクッと実装できて、とても良い感じだと思いました。
下記のように複数フィルターを重ねて数行でそれなりの良い感じのフィルターを作成することができます。

CameraViewController.swift
import GPUImage
class CameraViewController: UIViewController {

    var videoCamera: GPUImageVideoCamera?
    var filterGroup: GPUImageFilterGroup?

    override func viewDidLoad() {

        videoCamera = GPUImageVideoCamera(sessionPreset: AVCaptureSessionPresetHigh, cameraPosition: .back)
        videoCamera!.outputImageOrientation = .portrait;

        // 明るさ
        let brightnessFilter = GPUImageBrightnessFilter()
        brightnessFilter.brightness = 0.01

        // コントラスト
        let contrastFilter = GPUImageContrastFilter()
        contrastFilter.contrast = 1.1

        // 彩度
        let satureationFilter = GPUImageSaturationFilter()
        satureationFilter.saturation = 0.8

        // フィルターを重ねる
        brightnessFilter.addTarget(contrastFilter)
        contrastFilter.addTarget(satureationFilter)

        // フィルターグループ生成
        filterGroup = GPUImageFilterGroup()
        filterGroup?.addFilter(brightnessFilter)
        filterGroup?.addFilter(contrastFilter)
        filterGroup?.addFilter(satureationFilter)

        filterGroup?.initialFilters = [brightnessFilter]
        filterGroup?.terminalFilter = satureationFilter

        videoCamera!.addTarget(filterGroup)
        filterGroup?.addTarget(self.view as! GPUImageView)

        videoCamera?.startCapture()
    }
}
3
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
9