[swift] Swift Core Graphics의 이미지 변환 기능

Swift Core Graphics는 iOS 및 macOS 앱에서 이미지를 다루고 변환하는 데 사용되는 강력한 도구입니다. 이미지의 크기, 회전, 투명도 및 다른 속성을 조절하기 위해 Core Graphics를 사용할 수 있습니다.

본 포스트에서는 Swift를 사용하여 Core Graphics를 활용하여 이미지를 변환하는 방법을 알아보겠습니다.

이미지 회전하기

이미지를 회전시키는 것은 Core Graphics에서 쉽게 할 수 있습니다. 다음은 이미지를 90도로 회전하는 예제 코드입니다.

import UIKit

func rotateImage(_ image: UIImage, by degrees: CGFloat) -> UIImage? {
    let radians = degrees * CGFloat.pi / 180
    let rotatedSize = image.size
    let scale = UIScreen.main.scale
    UIGraphicsBeginImageContextWithOptions(rotatedSize, false, scale)

    let bitmap = UIGraphicsGetCurrentContext()
    bitmap?.translateBy(x: rotatedSize.width / 2, y: rotatedSize.height / 2)
    bitmap?.rotate(by: radians)
    image.draw(in: CGRect(x: -image.size.width / 2, y: -image.size.height / 2, width: rotatedSize.width, height: rotatedSize.height))

    let rotatedImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return rotatedImage
}

이미지 크기 조절하기

이미지의 크기를 조절하는 것도 간단합니다. 다음은 이미지의 크기를 50%로 조절하는 예제 코드입니다.

func resizeImage(_ image: UIImage, to size: CGSize) -> UIImage? {
    UIGraphicsBeginImageContext(size)
    image.draw(in: CGRect(origin: .zero, size: size))
    let resizedImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return resizedImage
}

이미지 투명도 조절하기

이미지의 투명도를 조절하여 불투명하게 하거나 반투명하게 만들 수 있습니다. 다음은 이미지의 투명도를 조절하는 예제 코드입니다.

func adjustImageOpacity(_ image: UIImage, withAlpha alpha: CGFloat) -> UIImage? {
    UIGraphicsBeginImageContext(image.size)
    image.draw(at: .zero, blendMode: .normal, alpha: alpha)
    let adjustedImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return adjustedImage
}

Core Graphics를 활용하여 이미지를 변환하는 방법에 대해 간단히 살펴보았습니다. Core Graphics에 대한 자세한 정보는 Apple 공식 문서를 참고하시기 바랍니다.