[swift] 이미지의 채도 조정하기

이미지의 채도는 이미지에 포함된 색의 강도와 선명도를 조절하는 요소입니다. Swift를 사용하여 이미지의 채도를 조정하는 방법에 대해 알아보겠습니다.

이미지 채도 조정하기

import UIKit

func adjustSaturation(of image: UIImage, saturation: CGFloat) -> UIImage? {
    guard let ciImage = CIImage(image: image) else { return nil }
    
    let filter = CIFilter(name: "CIColorControls")!
    filter.setValue(ciImage, forKey: kCIInputImageKey)
    filter.setValue(saturation, forKey: kCIInputSaturationKey)
    
    guard let outputImage = filter.outputImage else { return nil }
    
    let context = CIContext(options: nil)
    guard let cgImage = context.createCGImage(outputImage, from: outputImage.extent) else { return nil }
    
    let adjustedImage = UIImage(cgImage: cgImage)
    return adjustedImage
}

위의 코드는 adjustSaturation(of:saturation:) 함수를 사용하여 이미지의 채도를 조정하는 방법을 보여줍니다. 이 함수는 입력으로 받은 이미지와 채도 값을 사용하여 조정된 이미지를 반환합니다.

  1. 먼저, 함수의 입력으로 받은 이미지를 CIImage로 변환합니다.

  2. CIFilter를 사용하여 이미지의 채도를 조정합니다. "CIColorControls" 필터를 사용하고, kCIInputSaturationKey 키에 채도 값을 설정합니다.

  3. 조정된 이미지를 얻기 위해 CIContext를 사용하여 outputImageCGImage로 변환합니다.

  4. CGImage로부터 UIImage 객체를 만들어 반환합니다.

예시

guard let originalImage = UIImage(named: "original_image"),
      let adjustedImage = adjustSaturation(of: originalImage, saturation: 1.5) else { return }

// 조정된 이미지를 표시합니다.
let imageView = UIImageView(image: adjustedImage)

위의 예시 코드는 adjustSaturation(of:saturation:) 함수를 사용하여 원본 이미지의 채도를 1.5배로 조정한 후, 조정된 이미지를 UIImageView에 표시하는 방법을 보여줍니다.

결론

이번 포스트에서는 Swift를 사용하여 이미지의 채도를 조정하는 방법을 소개했습니다. 이미지 처리를 위해 CIFilter를 사용하고, CIImageUIImage 변환을 통해 조정된 이미지를 얻을 수 있습니다. 이를 활용하여 다양한 이미지 조작을 수행할 수 있습니다.


참고: