[swift] 이미지를 흑백으로 변환하기

이미지를 흑백으로 변환하는 방법에 대해 알아보겠습니다. Swift 언어를 사용하여 간단한 예제 코드를 작성해보겠습니다.

이미지 흑백으로 변환하기

아래의 코드는 UIImage를 흑백으로 변환하는 함수를 보여줍니다.

func convertToGrayScale(image: UIImage) -> UIImage? {
    let imageRect = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
    let colorSpace = CGColorSpaceCreateDeviceGray()
    
    let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.none.rawValue)
    guard let context = CGContext(data: nil, width: Int(image.size.width), height: Int(image.size.height), bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace, bitmapInfo: bitmapInfo.rawValue) else {
        return nil
    }
    
    context.draw(image.cgImage!, in: imageRect)

    guard let grayScaleImage = context.makeImage() else {
        return nil
    }
    
    return UIImage(cgImage: grayScaleImage)
}

위의 코드에서 convertToGrayScale 함수는 UIImage를 매개변수로 받아 흑백으로 변환된 이미지를 반환합니다.

위 코드는 다음과 같은 단계를 거쳐 이미지를 흑백으로 변환합니다:

  1. UIImage 객체의 사각형 영역을 설정합니다.
  2. CGColorSpaceCreateDeviceGray()를 사용하여 흑백 색 공간을 만듭니다.
  3. CGContext 객체를 생성합니다.
  4. 생성한 CGContext 객체를 사용하여 이미지를 그려줍니다.
  5. 변환된 이미지를 생성하고 반환합니다.

사용 예시

아래는 이미지를 흑백으로 변환하는 방법을 사용하는 예시입니다.

let originalImage = UIImage(named: "original_image")
guard let grayScaleImage = convertToGrayScale(image: originalImage) else {
    return
}

imageView.image = grayScaleImage

위의 예시 코드에서 originalImage는 원본 이미지를 나타내는 UIImage 객체입니다. convertToGrayScale 함수를 호출하여 이미지를 흑백으로 변환하고, 변환된 이미지를 imageView에 설정하여 표시합니다.

이제 이미지를 흑백으로 변환하는 간단한 예제를 작성하는 방법을 알게 되었습니다. 이를 기반으로 다양한 이미지 처리 기능을 구현할 수 있습니다.

참고 문서: Apple Developer Documentation