이미지 작업용 애플리케이션을 만들었지 만 문제가 발생했습니다. 사진에 필터를 추가 할 수 없으며이 문제를 해결하는 방법을 모르겠습니다.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