[swift] Core Image를 사용하여 이미지에 필터 체인을 적용하는 방법은?

Core Image는 iOS 및 macOS 애플리케이션에서 이미지 및 비디오 처리를 위한 풍부한 기능의 프레임워크입니다. Core Image를 사용하여 이미지에 필터 체인을 적용하는 방법을 알아보겠습니다.

Step 1: CIContext 생성

Core Image를 사용하기 위해 CIContext를 생성합니다. 이는 필터를 적용하고 이미지를 렌더링하는 데 사용됩니다.

let context = CIContext(options: nil)

Step 2: CIImage 생성

필터를 적용할 대상 이미지에 대한 CIImage 인스턴스를 생성합니다.

guard let image = UIImage(named: "inputImage.jpg"), let ciImage = CIImage(image: image) else {
    return
}

Step 3: 필터 생성 및 체인 적용

이미지에 적용할 필터를 생성하고 체인에 적용합니다. 아래 예제에서는 Sepia 필터와 Gaussian Blur 필터를 적용한 후, 결과를 가져오기 위해 context를 사용합니다.

// 필터 체인 생성
let sepiaFilter = CIFilter(name: "CISepiaTone")
sepiaFilter?.setValue(ciImage, forKey: kCIInputImageKey)
sepiaFilter?.setValue(0.8, forKey: kCIInputIntensityKey)

let blurFilter = CIFilter(name: "CIGaussianBlur")
blurFilter?.setValue(sepiaFilter?.outputImage, forKey: kCIInputImageKey)
blurFilter?.setValue(10.0, forKey: kCIInputRadiusKey)

// 필터 적용
guard let outputImage = blurFilter?.outputImage,
    let cgImage = context.createCGImage(outputImage, from: outputImage.extent) else {
        return
}
let filteredImage = UIImage(cgImage: cgImage)

이제 filteredImage에 필터 체인이 적용된 이미지가 저장되어 있습니다.

Core Image를 사용하여 이미지에 필터 체인을 적용하는 간단한 방법을 확인했습니다. 필터 체인을 적용하여 이미지를 향상시키거나 새로운 시각적 효과를 만들 수 있습니다.

더 많은 정보는 Core Image Programming Guide를 참조하세요.