[swift] 이미지의 페이지 회전하기

이미지 처리는 iOS 앱 개발에서 매우 중요한 부분입니다. 이미지를 회전시키는 것도 그 중 하나인데, 이를 위해 UIImage 클래스의 imageOrientation 속성을 사용하여 이미지를 원하는 각도로 회전시킬 수 있습니다.

이미지 회전 방법

다음은 UIImage의 imageOrientation 속성을 사용하여 이미지를 회전하는 방법입니다.

extension UIImage {
    func rotate(radians: CGFloat) -> UIImage {
        let rotatedSize = CGRect(origin: .zero, size: size).applying(CGAffineTransform(rotationAngle: radians)).integral.size
        UIGraphicsBeginImageContext(rotatedSize)
        if let context = UIGraphicsGetCurrentContext() {
            let origin = CGPoint(x: rotatedSize.width / 2, y: rotatedSize.height / 2)
            
            context.translateBy(x: origin.x, y: origin.y)
            context.rotate(by: radians)
            
            draw(in: CGRect(x: -size.width / 2, y: -size.height / 2, width: size.width, height: size.height))
            
            let rotatedImage = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            
            return rotatedImage ?? self
        }
        return self
    }
}

위의 코드는 UIImage를 확장(extension)하여 rotate(radians:) 메서드를 추가합니다. 이 메서드는 회전할 각도(radians)를 입력 받아 해당 각도로 이미지를 회전시킵니다.

사용 방법

위에서 작성한 rotate(radians:) 메서드를 사용하여 이미지를 회전시키는 예시 코드입니다.

let image = UIImage(named: "example_image")
let rotatedImage = image?.rotate(radians: .pi / 2) // 90도 회전

위의 예시 코드에서는 example_image라는 이름의 이미지를 로드한 후, rotate(radians:) 메서드를 호출하여 90도로 이미지를 회전시킵니다. 회전된 이미지는 rotatedImage 상수에 저장됩니다.

결론

위의 예시 코드를 참고하여 UIImage 클래스의 imageOrientation 속성을 이용하여 이미지를 원하는 각도로 회전시킬 수 있습니다. 이를 활용하면 사용자가 선호하는 방식으로 이미지를 회전시키는 기능을 구현할 수 있습니다.

참고: UIImage - Apple Developer Documentation