[swift] 색상 필터링을 위해 Core Image를 사용하는 방법은?
- 먼저, Core Image 프레임워크를 프로젝트에 추가합니다.
- 이미지를 나타내는
CIImage
인스턴스를 생성합니다. - 원하는 필터를 선택하여
CIFilter
인스턴스를 생성합니다. 예를 들어,CIColorControls
필터를 사용하여 색상을 조절할 수 있습니다. - 필터의 속성을 설정합니다. 이 경우에는
inputSaturation
,inputBrightness
,inputContrast
등을 사용하여 조절할 수 있습니다. - 필터를 적용하고 결과를 얻기 위해
CIContext
를 사용합니다.
아래는 예제 코드입니다.
import CoreImage
// 이미지를 나타내는 CIImage 인스턴스 생성
guard let image = CIImage(image: yourUIImage) else { return }
// 필터 선택 및 생성
let colorControlsFilter = CIFilter(name: "CIColorControls")
// 필터의 속성 설정
colorControlsFilter?.setValue(image, forKey: kCIInputImageKey)
colorControlFilter?.setValue(1.5, forKey: kCIInputSaturationKey)
colorControlFilter?.setValue(0.5, forKey: kCIInputBrightnessKey)
colorControlFilter?.setValue(1.2, forKey: kCIInputContrastKey)
// 필터 적용을 위해 CIContext 사용
let ciContext = CIContext(options: nil)
if let outputImage = colorControlsFilter?.outputImage,
let cgImage = ciContext.createCGImage(outputImage, from: outputImage.extent) {
let filteredImage = UIImage(cgImage: cgImage)
}
위의 코드에서 yourUIImage
는 원본 이미지를 나타내는 UIImage 객체입니다. 이와 같은 방법으로 Core Image를 사용하여 색상 필터를 적용할 수 있습니다.