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

이미지의 밝기를 조정하는 것은 앱 또는 웹 개발에서 자주 사용되는 작업입니다. Swift에서는 Core Graphics 프레임워크를 사용하여 이미지의 밝기를 조정할 수 있습니다. 이번 포스트에서는 Swift를 사용하여 이미지의 밝기를 조정하는 방법을 알아보겠습니다.

1. 이미지 가져오기

import UIKit

let image = UIImage(named: "example.jpg")

먼저 UIImage를 사용하여 이미지를 가져옵니다. example.jpg는 조정하고자 하는 이미지 파일의 이름으로 변경해야 합니다.

2. 이미지의 밝기 조정하기

func adjustBrightness(image: UIImage, brightness: CGFloat) -> UIImage? {
    guard let cgImage = image.cgImage else { return nil }
    
    let context = CIContext(options: nil)
    let ciImage = CIImage(cgImage: cgImage)
    
    guard let filter = CIFilter(name: "CIColorControls") else { return nil }
    filter.setValue(ciImage, forKey: kCIInputImageKey)
    filter.setValue(brightness, forKey: kCIInputBrightnessKey)
    
    guard let outputImage = filter.outputImage else { return nil }
    
    if let outputCGImage = context.createCGImage(outputImage, from: outputImage.extent) {
        return UIImage(cgImage: outputCGImage)
    }
    
    return nil
}

let adjustedImage = adjustBrightness(image: image, brightness: 0.5)

adjustBrightness 함수를 사용하여 이미지의 밝기를 조정합니다. 함수는 원본 이미지와 밝기 값을 인자로 받습니다. 밝기 값은 0보다 작으면 이미지가 어두워지고, 1보다 크면 이미지가 밝아집니다.

위의 코드는 CIColorControls 필터를 사용하여 이미지의 밝기를 조정합니다. 필터를 적용하기 위해 CIImage 객체를 생성하고, 필터의 kCIInputImageKeykCIInputBrightnessKey 값을 설정합니다. 그 후 출력 이미지를 CIContext를 사용하여 CGImage로 변환합니다.

3. 조정된 이미지 사용하기

let imageView = UIImageView(image: adjustedImage)
imageView.frame = CGRect(x: 0, y: 0, width: 200, height: 200)

view.addSubview(imageView)

adjustedImage를 사용하여 조정된 이미지를 화면에 나타냅니다. 이 예시에서는 UIImageView를 사용하여 이미지를 표시하지만, 사용하는 컨텍스트에 따라 다른 방법을 사용할 수도 있습니다.

이제 Swift를 사용하여 이미지의 밝기를 조정하는 방법을 알고있습니다. 이미지 처리와 관련된 다른 작업을 수행하려면 Core Graphics 및 Core Image 프레임워크에 대한 더 많은 공부가 필요할 수 있습니다.

참고자료