[swift] 이미지를 선명한 윤곽으로 만들기

사진 편집 애플리케이션을 개발하고 계신다면, 이미지를 선명하게 만들어 윤곽을 뚜렷하게 표현해야 할 때가 있을 것입니다. 이번 블로그 포스트에서는 Swift를 사용하여 이미지의 윤곽을 강조하여 어두운 부분과 밝은 부분을 분리하는 방법을 알아보겠습니다.

1. Core Image 라이브러리 가져오기

먼저 이미지 편집에 필요한 Core Image 라이브러리를 가져와야 합니다. 프로젝트의 빌드 설정에서 CoreImage.framework를 추가해주어야 합니다.

2. 이미지 필터링

Core Image 라이브러리를 사용하여 이미지를 필터링하여 윤곽을 선명하게 만들 수 있습니다. 아래는 이미지 필터링을 위한 예제 코드입니다.

import CoreImage

func sharpenImage(image: UIImage) -> UIImage? {
    guard let ciImage = CIImage(image: image) else { return nil }
    
    let filter = CIFilter(name: "CIUnsharpMask")!
    filter.setValue(ciImage, forKey: kCIInputImageKey)
    filter.setValue(2.5, forKey: kCIInputRadiusKey)
    filter.setValue(0.5, forKey: kCIInputIntensityKey)
    
    let ciContext = CIContext(options: nil)
    guard let outputImage = filter.outputImage,
          let cgImage = ciContext.createCGImage(outputImage, from: outputImage.extent) else { return nil }
    
    return UIImage(cgImage: cgImage)
}

위의 코드는 CIUnsharpMask 필터를 사용하여 이미지를 선명하게 만드는 함수입니다. 필터의 kCIInputRadiusKeykCIInputIntensityKey 값을 조절하여 원하는 선명도를 조절할 수 있습니다.

3. 이미지 편집 적용

이제 위에서 작성한 sharpenImage 함수를 사용하여 이미지 편집을 적용해보겠습니다.

guard let originalImage = UIImage(named: "originalImage"),
      let sharpenedImage = sharpenImage(image: originalImage) else { return }

let imageView = UIImageView(image: sharpenedImage)

위의 코드에서 “originalImage”는 편집하고자 하는 이미지 파일의 이름입니다. sharpenImage 함수를 호출하여 해당 이미지를 필터링하고, 필터링된 이미지를 UIImageView에 표시하는 예제입니다.

4. 추가 옵션

위의 예제 코드는 이미지 선명도를 강조하는 단순한 방법을 보여주었습니다. Core Image 라이브러리에는 다양한 필터와 설정 옵션이 있으므로, 필요에 따라 다른 필터를 적용하고 옵션을 조절할 수도 있습니다. Core Image Filter Reference 문서를 참고하여 자신의 애플리케이션에 맞는 필터를 선택해 보세요.

이제 이미지를 선명하게 만드는 방법을 알게 되었습니다. 원하는 이미지 편집 기능을 구현하기 위해 Core Image 라이브러리와 필터를 사용해보세요.