[swift] 이미지의 색조 조정하기

이미지의 색조를 조정하는 것은 이미지 처리와 사진 편집 애플리케이션에서 매우 일반적인 작업입니다. 이번 블로그 포스트에서는 Swift 언어를 사용하여 이미지의 색조를 조정하는 방법에 대해 알아보겠습니다.

Core Image 사용하기

Core Image는 iOS 및 macOS에서 이미지 및 비디오 처리를 위한 프레임워크입니다. Core Image를 사용하면 이미지의 색을 수정하고 조작할 수 있는 다양한 필터와 효과를 사용할 수 있습니다.

시작하기 전에, 프로젝트에 Core Image 프레임워크를 추가해야 합니다. Xcode의 프로젝트 네비게이터에서 프로젝트 파일을 선택하고 타겟을 선택한 다음, “Build Phases” 탭으로 이동하여 “Link Binary With Libraries” 섹션을 찾습니다. 여기서 “+” 버튼을 클릭하고 CoreImage.framework를 추가합니다.

이미지의 색조 조정하기

아래는 Swift를 사용하여 이미지의 색조를 조정하는 예시 코드입니다.

import CoreImage

func adjustImageHue(_ image: UIImage, hue: Float) -> UIImage? {
    // CIImage 객체로 이미지를 생성합니다.
    guard let ciImage = CIImage(image: image) else {
        return nil
    }
    
    // CIContext를 생성합니다.
    let context = CIContext(options: nil)
    
    // CIFilter를 생성하고 색조를 조정합니다.
    let hueFilter = CIFilter(name: "CIHueAdjust")
    hueFilter?.setValue(ciImage, forKey: kCIInputImageKey)
    hueFilter?.setValue(NSNumber(value: hue), forKey: kCIInputAngleKey)
    
    // 필터를 적용하여 결과 이미지를 얻습니다.
    guard let outputCIImage = hueFilter?.outputImage,
          let outputCGImage = context.createCGImage(outputCIImage, from: outputCIImage.extent) else {
        return nil
    }
    
    // CGImage를 UIImage로 변환하여 리턴합니다.
    return UIImage(cgImage: outputCGImage)
}

// 이미지의 색조를 조정합니다. (예: 0.5는 보라색 계열로 변경)
let originalImage = UIImage(named: "image.jpg")
let adjustedImage = adjustImageHue(originalImage, hue: 0.5)

위의 코드에서는 adjustImageHue 함수를 사용하여 이미지의 색조를 조정합니다. 함수는 원본 이미지와 적용할 색조 값을 입력으로 받고, 조정된 이미지를 출력합니다. 이 함수는 CIImage, CIContext, CIFilter 등의 Core Image 클래스들을 사용하여 작업을 수행합니다.

마치며

이번 포스트에서는 Swift를 사용하여 이미지의 색조를 조정하는 방법에 대해 알아보았습니다. Core Image 프레임워크를 사용하면 필터 및 효과를 사용하여 더 다양한 이미지 처리 작업을 수행할 수 있습니다.

더 자세한 내용은 Apple의 Core Image 가이드를 참조하시기 바랍니다.