今回の記事はSwiftを利用して画面キャプチャを作成する方法について記載いたします。どのような場面で使用するかは正直わかりませんが画面キャプチャをとる際にご使用ください。
カメラロールに保存する設定
カメラロールに保存する際には権限を付与する必要があります。そのため「info.plist」に権限を追加します。下記画像にしたがって権限を付与してください。追加する権限は「Privacy – Photo Library Additions Usage Description」です。
どこでもいいので「+」ボタンを押すことで権限を追加できます。
したの方に「Privacy – Photo Library Additions Usage Description」があるのでことらを選択し、valueの値を設定します。こだわりがなければカメラロール権限を与えます的な内容で特に問題はないと思います。こちら権限付与時のメッセージとなって出力されます。
画面キャプチャを行うためのSwiftコード
//コンテキスト開始
UIGraphicsBeginImageContextWithOptions(UIScreen.main.bounds.size, false, 0.0)
//viewを書き出す
self.view.drawHierarchy(in: self.view.bounds, afterScreenUpdates: true)
// imageにコンテキストの内容を書き出す
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
//コンテキストを閉じる
UIGraphicsEndImageContext()
// imageをカメラロールに保存
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
このようにまずはUIスクリーンの大きさを取得し、そのサイズにあったviewを取り出します。次にその取り出したview部分をUIImageに変換し、UIImageのインスタンスを作ります。あとは編集を終了して、カメラロールに保存するのみです。
カメラアプリなどに使用できますのでカメラ使用時に是非ご参照ください。
コメント