【Swift】スクリーンショットを撮影する方法!UIImageに変換
この記事からわかること
- Swiftで画面のスクリーンショットを撮影する方法
- UIGraphicsImageRendererクラス使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Xcode:15.0.1
- iOS:17.0
- Swift:5.9
- macOS:Sonoma 14.1
Swiftでスクリーンショットを撮影する方法
Swiftで画面のスクリーンショットを撮影するにはUIGraphicsImageRenderer
クラスを使用します。撮影したい範囲を渡すだけで簡単にUIImage型に変換することが可能です。
func takeScreenshot() -> UIImage? {
guard let window = UIApplication.shared.connectedScenes.first as? UIWindowScene else {
return nil
}
// スクリーンショットで撮影したいサイズを取得
let screenSize = window.screen.bounds.size
// UIGraphicsImageRendererを使用して画面を描画
let renderer = UIGraphicsImageRenderer(size: screenSize)
let screenshot = renderer.image { context in
window.windows.first { $0.isKeyWindow }?.layer.render(in: context.cgContext)
}
return screenshot
}
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。