LoginSignup
12
10

More than 5 years have passed since last update.

Swift GPUImage2で画像の平均色を抽出する

Last updated at Posted at 2017-02-12

Screen Shot 2017-02-13 at 2.31.51.png

GPUImage2を使って写真から全体の平均色を抽出します。
GPUImage2はSwiftで書き直されたもので、Mac、iOS、そしてLinuxに対応しています。
他にも平均色の抽出方法はありますが、画像処理にGPUを利用するメリットは大きく、CPUを使う処理と比べて体感できるほど速度に違いが出ます。

GPUImage2をプロジェクトへ導入

Cocoapodsには1はあっても2はないため、手動で導入します。

  1. BradLarson / GPUImage2をダウンロードします。
  2. プロジェクト内にGPUImage-iOS.xcodeprojをドロップ&ドラッグで放り込む、もしくは File > Add File to "ProjectName" で追加します。
  3. プロジェクトのターゲットを選択し、Build Phases > Target DependenciesGPUImageを追加します。
  4. プロジェクトのターゲットを選択し、General > Embedded BinariesGPUImage.framework iOSを追加します。

画像全体の色の平均を抽出

import UIKit
import GPUImage

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let extractor = AverageColorExtractor()
        extractor.extractedColorCallback = { [weak self] (color: Color) in
            let uiColor = UIColor(red: CGFloat(color.redComponent),
                                  green: CGFloat(color.greenComponent),
                                  blue: CGFloat(color.blueComponent),
                                  alpha: CGFloat(color.alphaComponent))
            self?.view.backgroundColor = uiColor
        }
        let image = UIImage(named: "myImage.jpg")
        _ = image?.filterWithOperation(extractor)

    }

}

12
10
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
12
10