[swift] Swift Core Graphics로 스크린 샷 찍기
스크린 샷을 찍는 기능은 앱에서 유용한 기능 중 하나입니다. Core Graphics
를 사용하여 Swift에서 스크린 이미지를 캡처하는 방법을 살펴보겠습니다.
1. 이미지 캡처 함수 작성
먼저, 이미지 캡처 기능을 구현할 함수를 작성해야 합니다.
func takeScreenshot() -> UIImage? {
guard let window = UIApplication.shared.windows.first(where: { $0.isKeyWindow }) else {
return nil
}
UIGraphicsBeginImageContextWithOptions(window.frame.size, false, 0)
window.drawHierarchy(in: window.bounds, afterScreenUpdates: true)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return screenshot
}
위의 코드에서는 takeScreenshot
함수를 사용하여 앱 화면의 스크린 샷을 캡처합니다.
2. 스크린 샷 저장
이제 스크린 샷을 캡처하고 저장하는 방법을 살펴보겠습니다.
if let screenshot = takeScreenshot() {
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil)
}
위의 코드는 takeScreenshot
함수를 사용하여 캡처한 이미지를 사진 앨범에 저장합니다.
3. 권한 설정
스크린 샷을 앨범에 저장하려면 Info.plist
파일에 다음과 같은 권한을 추가해야 합니다.
<key>NSPhotoLibraryAddUsageDescription</key>
<string>We need permission to save screenshots to your photo library</string>
위의 설정을 통해 사용자에게 스크린 샷 저장 권한을 요청할 수 있습니다.
요약
Swift에서 Core Graphics를 사용하여 스크린 샷을 찍고 저장하는 방법에 대해 살펴보았습니다. 이를 통해 앱에 유용한 스크린 샷 기능을 구현할 수 있습니다.
참고 자료: Apple Developer Documentation, Hacking with Swift