0
イメージを扱うアプリケーションを作成しましたが、問題が発生しました。写真にフィルターを追加することはできません。この問題の解決方法はわかりません。CIImageにフィルタを追加する
私はCIImageとの仕事のために自分のクラスを書いた:
import CoreImage
typealias Filter = (CIImage) ->()
typealias ParametersFilter = Dictionary<String, AnyObject>
public protocol PXImageDelegate {
func updateImage(picker: PXImage)
}
public class PXImage: CIImage {
public var delegate: PXImageDelegate?
open var brightness: Float = 0 {
willSet (value) {
brightness = value
brightness(value)(self)
updateImage()
}
}
open var contrast: Float = 1 {
willSet (value) {
contrast = value
contrast(value)(self)
updateImage()
}
}
open var saturation: Float = 1 {
willSet (value) {
saturation = value
saturation(value)(self)
updateImage()
}
}
private func brightness(_ value: Float) -> Filter {
return { image in
let parameters: ParametersFilter = [
kCIInputBrightnessKey: value as AnyObject,
kCIInputImageKey: image
]
self.applyingFilter("CIColorControls", parameters: parameters)
}
}
private func contrast(_ value: Float) -> Filter {
return { image in
let parameters: ParametersFilter = [
kCIInputContrastKey: value as AnyObject,
kCIInputImageKey: image
]
self.applyingFilter("CIColorControls", parameters: parameters)
}
}
private func saturation(_ value: Float) -> Filter {
return { image in
let parameters: ParametersFilter = [
kCIInputSaturationKey: value as AnyObject,
kCIInputImageKey: image
]
self.applyingFilter("CIColorControls", parameters: parameters)
}
}
func updateImage() {
delegate?.updateImage(picker: self)
}
しかし、私は明るさの値を変更したときに、コントラスト、彩度何も起こりません。画像は静的なままです。なぜこうなった?
ありがとうございました。私はこのイメージをCIContextを使ってGLKViewの中に描画しています。 – nik3212