[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:)
함수를 사용하여 이미지의 채도를 조정하는 방법을 보여줍니다. 이 함수는 입력으로 받은 이미지와 채도 값을 사용하여 조정된 이미지를 반환합니다.
-
먼저, 함수의 입력으로 받은 이미지를
CIImage
로 변환합니다. -
CIFilter
를 사용하여 이미지의 채도를 조정합니다."CIColorControls"
필터를 사용하고,kCIInputSaturationKey
키에 채도 값을 설정합니다. -
조정된 이미지를 얻기 위해
CIContext
를 사용하여outputImage
를CGImage
로 변환합니다. -
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
를 사용하고, CIImage
와 UIImage
변환을 통해 조정된 이미지를 얻을 수 있습니다. 이를 활용하여 다양한 이미지 조작을 수행할 수 있습니다.
참고:
-
[Core Image Apple Developer Documentation](https://developer.apple.com/documentation/coreimage) -
[UIImage Apple Developer Documentation](https://developer.apple.com/documentation/uikit/uiimage) -
[CIImage Apple Developer Documentation](https://developer.apple.com/documentation/coreimage/ciimage) -
[CIFilter Apple Developer Documentation](https://developer.apple.com/documentation/coreimage/cifilter)