【iOS】PhotoKitでよく使う処理まとめ

Photosフレームワークを使用することで、フォトライブラリから写真やビデオを取得したり、フォトライブラリにアルバムを作成することができます。ここではPhotosフレームワークでよく使う処理をまとます。
UIImageを取得
PHImageManager インスタンスが持つrequestImage の引数にPHAsset 型の変数を指定することで、対応するUIImage を取得することができます。option のPHImageRequestOptions()を指定することによって取得する画像の画質、取得速度、処理の同期/非同期を変更することができる。
AVPlayerItemを取得
PHImageManager インスタンスが持つrequestPlayerItem の引数にPHAsset 型の変数を指定することで、対応するAVPlayerItem を取得することができます。取得したAVPlayerItem はAVPlayer にセットしてビデオ再生することができます。
アセットを削除
deleteAssets の引数にPHAsset 型の配列を指定することでアセットを削除することができます。
イメージデータを保存
保存するイメージデータの種類によってaddResource のwith 引数に指定するPHAssetResourceType を変更する必要があります。
- 写真
- Live Photos
- RAW
ビデオを保存
写真・動画を共有
assetResources でPHAsset 型の変数から取り出したリソース群のタイプを判別してから、写真・ビデオを指定のURLに書き出し、ActivityControllerを使用して写真・動画を共有しています。以下の例ではタイプを.photoと.videoの2パターンしか用意していませんが、必要に応じてその他のPHAssetResourceTypeをcaseに追加すればRAWデータやLive Photosの動画だけを共有することができます。
以下の方法でも写真を共有することができます。
アセットをお気に入りに指定/解除
写真やビデオをお気に入りに指定したり解除することができます。
Discussion