iOS/코드조각

[iOS, Swift] 현재 뷰 이미지로 변경하기 UIView to UIImage

검은참깨두유vm 2022. 6. 22. 08:51
반응형

Xcode 13.31, Swift 5, UIKit 환경에서 진행했습니다.

 

extension UIView {
    func asImage() -> UIImage {
        let renderer = UIGraphicsImageRenderer(bounds: bounds)
        return renderer.image { rendererContext in
            layer.render(in: rendererContext.cgContext)
        }
    }
}

 

아이폰 13환경에서 이미지 600장 이상 변환 시 메모리 부족으로 Cannot allocate memory 오류 발생

extension UIView {
    func asImage2() -> UIImage {
        UIGraphicsBeginImageContext(self.bounds.size)
        self.drawHierarchy(in: self.bounds, afterScreenUpdates: true)
        var image: UIImage? = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image!
    }
}

두번째 이미지 렌더링 방법으로 오류 해결

반응형