[swift] 이미지 색상 조정하기
이미지를 색상 조정하는 것은 iOS 애플리케이션에서 매우 유용한 기능 중 하나입니다. Swift를 사용하여 이미지의 색상을 조정하는 방법에 대해 알아보겠습니다.
UIImage의 Extension 사용
UIImage를 확장하여 이미지의 색상을 조정할 수 있습니다. 다음 코드를 사용하여 이미지의 색상을 조정하는 이미지 확장(extension)을 만들어보겠습니다.
extension UIImage {
func adjustColor(hue: CGFloat, saturation: CGFloat, brightness: CGFloat, alpha: CGFloat) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
guard let context = UIGraphicsGetCurrentContext() else { return nil }
let rect = CGRect(origin: .zero, size: size)
draw(in: rect)
context.setBlendMode(.normal)
context.translateBy(x: rect.origin.x, y: rect.origin.y)
context.scaleBy(x: rect.size.width / rect.size.width, y: rect.size.height / rect.size.height)
let ciImage = CIImage(image: self)
if let filter = CIFilter(name: "CIColorControls") {
filter.setValue(ciImage, forKey: kCIInputImageKey)
filter.setValue(hue, forKey: kCIInputHueKey)
filter.setValue(saturation, forKey: kCIInputSaturationKey)
filter.setValue(brightness, forKey: kCIInputBrightnessKey)
filter.setValue(alpha, forKey: kCIInputContrastKey)
if let outputImage = filter.outputImage {
let newImage = UIImage(ciImage: outputImage)
newImage.draw(in: rect)
let adjustedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return adjustedImage
}
}
return nil
}
}
위의 코드에서는 adjustColor()
라는 메서드를 UIImage의 확장으로 추가했습니다. 이 메서드는 원하는 색상 조정 값을 받아옵니다. 그리고 현재 이미지의 컨텍스트를 만들고 CIColorControls
라는 필터를 사용하여 이미지의 색상을 조정합니다. 조정된 이미지는 UIGraphicsGetImageFromCurrentImageContext()
를 사용하여 가져옵니다.
이미지 색상 조정하기
이제 위에서 생성한 이미지 확장(extension)을 사용하여 이미지의 색상을 조정해보겠습니다.
let originalImage = UIImage(named: "myImage")
let adjustedImage = originalImage?.adjustColor(hue: 0.5, saturation: 0.8, brightness: 0.9, alpha: 1.0)
위의 코드에서는 원본 이미지(originalImage
)를 가져오고, adjustColor()
메서드를 사용하여 이미지의 색상을 조정합니다. adjustColor()
메서드의 매개 변수로 원하는 색상 조정 값을 전달하여 새로운 이미지(adjustedImage
)를 얻을 수 있습니다.
결론
이미지의 색상 조정은 iOS 애플리케이션에서 시각적인 요소를 변경하고 사용자 경험을 향상시키는 데에 유용한 기능입니다. 위에서 소개한 방법을 사용하여 이미지의 색상을 조정해보세요.
참고 자료
- Apple Developer Documentation - UIImage
- Apple Developer Documentation - CIImage
- Apple Developer Documentation - Core Image Filters