Genta Hirauchi

公開日:2020/04/09
更新日:2020/04/09

【Swift CIFilter】CIFilterで画像の補正を行う方法まとめ

  • CIFilterで画像を補正する方法が知りたい。

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。

本記事では、CIFilterを使用した画像の補正方法をまとめております。

目次

CIExposureAdjustで露出を補正する

CIExposureAdjustで露出を補正するには、以下のように実装します。

let ciFilter = CIFilter(name: "CIExposureAdjust")    // CIFilterの生成
ciFilter.setValue(ciImage, forKey: kCIInputImageKey) // 入力画像の設定
ciFilter.setValue(露出値, forKey: "inputEV")          // 露出値の設定
let ciImage = ciFilter.outputImage                   // 補正後の画像取得

まず、CIFilter(name: “CIExposureAdjust”)で、露出補正用のCIFilterを生成します。

そして、そのCIFilterに対し、setValue(ciImage, forKey: kCIInputImageKey)で、補正をかける画像を設定します。

続いて、setValue(露出値, forKey: “inputEV”)で、露出値を設定します。

最後に、ciFilter.outputImageで、補正後の画像を取得します。

CIExposureAdjustによる露出の補正方法に関しましては、以下の記事にて詳しくまとめております。

【Swift CIFilter】CIExposureAdjustで露出を調整する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCIExposureAdjustというフィルタを使用し、画像の露出を補正する方法を解説致します。

Reference: CIExposureAdjust | Core Image Filter Reference

CIColorControlsで彩度、明るさ、コントラストを補正する

CIColorControlsで彩度、明るさ、コントラストを補正するには、以下のように実装します。

let ciFilter = CIFilter(name: "CIColorControls")           // CIFilterの生成
ciFilter.setValue(ciImage, forKey: kCIInputImageKey)       // 入力画像の設定
ciFilter.setValue(彩度値, forKey: "inputSaturation")        // 彩度の設定
ciFilter.setValue(明るさ値, forKey: "inputBrightness")       // 明るさの設定
ciFilter.setValue(コントラスト値, forKey: "inputContrast")      // コントラストの設定
let ciImage = ciFilter.outputImage                         // 補正後の画像取得

まず、CIFilter(name: “CIColorControls”)で、彩度、明るさ、コントラストの補正用のCIFilterを生成します。

そして、そのCIFilterに対し、setValue(ciImage, forKey: kCIInputImageKey)で、補正をかける画像を設定します。

彩度は、setValue(彩度値, forKey: “inputSaturation”)で設定します。

明るさは、setValue(明るさ値, forKey: “inputBrightness”)で設定します。

コントラストは、setValue(コントラスト値, forKey: “inputContrast”)で設定します。

最後に、ciFilter.outputImageで、補正後の画像を取得します。

CIColorControlsによる彩度、明るさ、コントラストの補正方法に関しましては、以下の記事にて詳しくまとめております。

【Swift CIFilter】CIColorControlsで彩度を補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCIColorControlsというフィルタを使用し、画像の彩度を補正する方法を解説致します。

【Swift CIFilter】CIColorControlsで明るさを補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCIColorControlsというフィルタを使用し、画像の明るさを補正する方法を解説致します。

【Swift CIFilter】CIColorControlsでコントラストを補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCIColorControlsというフィルタを使用し、画像のコントラストを補正する方法を解説致します。

Reference: CIColorControls | Core Image Filter Reference

CITemperatureAndTintで色温度、色合いを補正する

CITemperatureAndTintで色温度、色合いを補正するには、以下のように実装します。

let ciFilter = CIFilter(name: "CITemperatureAndTint")                      // CIFilterの生成
ciFilter.setValue(ciImage, forKey: kCIInputImageKey)                       // 入力画像の設定
ciFilter.setValue(CIVector(x: 色温度値, y: 色合い値), forKey: "inputNeutral") // 色温度と色合いの設定
ciFilter.setValue(CIVector(x: 6500, y: 0), forKey: "inputTargetNeutral")   // 色温度と色合いのターゲット値の設定
let ciImage = ciFilter.outputImage                                         // 補正後の画像取得

まず、CIFilter(name: “CITemperatureAndTint”)で、色温度、色合いの補正用のCIFilterを生成します。

そして、そのCIFilterに対し、setValue(ciImage, forKey: kCIInputImageKey)で、補正をかける画像を設定します。

色温度、色合いは、CIVector(x: 色温度値, y: 色合い値), forKey: “inputNeutral”)で設定します。

また、ターゲットとなる色温度、色合いの値も設定します。inputNeutralとinputTargetNeutralの差分によって、補正のされ方が変わってきます。

最後に、ciFilter.outputImageで、補正後の画像を取得します。

CITemperatureAndTintによる色温度、色合いの補正方法に関しましては、以下の記事にて詳しくまとめております。

【Swift CIFilter】CITemperatureAndTintで色温度を補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCITemperatureAndTintというフィルタを使用し、画像の色温度を補正する方法を解説致します。

【Swift CIFilter】CITemperatureAndTintで色合いを補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCITemperatureAndTintというフィルタを使用し、画像の色合いを補正する方法を解説致します。

Reference: CITemperatureAndTint | Core Image Filter Reference

CIHighlightShadowAdjustでハイライト、シャドウを補正する

CIHighlightShadowAdjustでハイライト、シャドウを補正するには、以下のように実装します。

let ciFilter = CIFilter(name: "CIHighlightShadowAdjust")      // CIFilterの生成
ciFilter.setValue(ciImage, forKey: kCIInputImageKey)          // 入力画像の設定
ciFilter.setValue(ハイライト値, forKey: "inputHighlightAmount")  // ハイライトの設定
ciFilter.setValue(シャドウ値, forKey: "inputShadowAmount")       // シャドウの設定
let ciImage = ciFilter.outputImage                            // 補正後の画像取得

まず、CIFilter(name: “CIHighlightShadowAdjust”)で、ハイライト、シャドウの補正用のCIFilterを生成します。

そして、そのCIFilterに対し、setValue(ciImage, forKey: kCIInputImageKey)で、補正をかける画像を設定します。

ハイライトは、setValue(ハイライト値, forKey: “inputHighlightAmount”)で設定します。

シャドウは、setValue(シャドウ値, forKey: “inputShadowAmount”)で設定します。

最後に、ciFilter.outputImageで、補正後の画像を取得します。

CIHighlightShadowAdjustによるハイライト、シャドウの補正方法に関しましては、以下の記事にて詳しくまとめております。

【Swift CIFilter】CIHighlightShadowAdjustでハイライトを補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCIHighlightShadowAdjustというフィルタを使用し、画像のハイライトを補正する方法を解説致します。

【Swift CIFilter】CIHighlightShadowAdjustでシャドウを補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCIHighlightShadowAdjustというフィルタを使用し、画像のシャドウを補正する方法を解説致します。

Reference: CIHighlightShadowAdjust | Core Image Filter Reference

CIHueAdjustで色相を補正する

CIHueAdjustで色相を補正するには、以下のように実装します。

let ciFilter = CIFilter(name: "CIHueAdjust")         // CIFilterの生成
ciFilter.setValue(ciImage, forKey: kCIInputImageKey) // 入力画像の設定
ciFilter.setValue(色相値, forKey: "inputAngle")       // 色相値の設定
let ciImage = ciFilter.outputImage                   // 補正後の画像取得

まず、CIFilter(name: “CIHueAdjust”)で、色相補正用のCIFilterを生成します。

そして、そのCIFilterに対し、setValue(ciImage, forKey: kCIInputImageKey)で、補正をかける画像を設定します。

色相は、setValue(色相値, forKey: “inputAngle”)で設定します。

最後に、ciFilter.outputImageで、補正後の画像を取得します。

CIHueAdjustによる色相の補正方法に関しましては、以下の記事にて詳しくまとめております。

【Swift CIFilter】CIHueAdjustで色相を補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCIHueAdjustというフィルタを使用し、画像の色相を補正する方法を解説致します。

Reference: CIHueAdjust | Core Image Filter Reference

CIToneCurveでトーンカーブを補正する

CIToneCurveでトーンカーブを補正するには、以下のように実装します。

let ciFilter = CIFilter(name: "CIToneCurve")                              // CIFilterの生成
ciFilter.setValue(ciImage, forKey: kCIInputImageKey)                      // 入力画像の設定
ciFilter.setValue(CIVector(x: 0.0,  y: ポイント0値), forKey: "inputPoint0")  // ポイント0値の設定
ciFilter.setValue(CIVector(x: 0.25, y: ポイント1値)), forKey: "inputPoint1") // ポイント1値の設定
ciFilter.setValue(CIVector(x: 0.5,  y: ポイント2値)), forKey: "inputPoint2") // ポイント2値の設定
ciFilter.setValue(CIVector(x: 0.75, y: ポイント3値)), forKey: "inputPoint3") // ポイント3値の設定
ciFilter.setValue(CIVector(x: 1.0,  y: ポイント4値)), forKey: "inputPoint4") // ポイント4値の設定
let ciImage = ciFilter.outputImage                                        // 補正後の画像取得

まず、CIFilter(name: “CIToneCurve”)で、露出補正用のCIFilterを生成します。

そして、そのCIFilterに対し、setValue(ciImage, forKey: kCIInputImageKey)で、補正をかける画像を設定します。

トーンカーブは5つのポイントで指定します。
各ポイントは、setValue(CIVector(x: デフォルト値, y: 変更値), forKey: ポイントのキー)で設定します。

最後に、ciFilter.outputImageで、補正後の画像を取得します。

CIToneCurveによるトーンカーブの補正方法に関しましては、以下の記事にて詳しくまとめております。

【Swift CIFilter】CIToneCurveでトーンカーブを補正する方法を解説

SwiftのCore Imageには、CIFilterという、画像の補正を行うことができるクラスがあります。CIFilterには、さまざなま画像補正のフィルタが用意されております。本記事では、その中のCIToneCurveというフィルタを使用し、画像のトーンカーブを補正する方法を解説致します。

Reference: CIToneCurve | Core Image Filter Reference