ObjecTips

Swift & Objective-C で iOS とか macOS とか

Photos.framework で自撮り(selfie)画像の一覧を取得する

iOS 9 β3で

PHAssetCollectionSubtypeSmartAlbumSelfPortraits NS_AVAILABLE_IOS(9_0) = 210

が追加された。

以前紹介したスクリーンショット画像の一覧取得は PHAssetMediaSubtype の追加定義だったが、今回のは PHAssetCollectionSubtype の追加定義なので画像一覧の取得の方法がちょっと異なる。
コードは以下

PHAssetCollection を取得する fetchRequest でスマートアルバムの SelfPortraits アルバムを取得する。
これが自撮り(selfie)用のスマートフォルダになる。
コレクションを取得したらそこから PHAsset 用の fetchRequest を作成する。
最終的にこのアセットから画像を取得する事ができる。


因みにこのスマートフォルダには iOS 9 β3 以降で撮影した写真しか入って来ない様で、既存の自撮り写真はこのフォルダに入っては来ない。
iOS 9 β3以降であれば3rd party製のカメラアプリでも内側カメラで撮影するとこの自撮りフォルダに写真が入って来た。
内側カメラの場合、タイムラプス、写真、スクエアのモードで撮影した写真が自撮りフォルダに入って来るが、ビデオモードでは入って来なかった。 スロー、パノラマに付いては外側カメラでしか撮影ができない。

以下まとめ

撮影モード 内側カメラ SmartAlbumSelfPortraits
タイムラプス o YES
スロー x NO
ビデオ o NO
写真 o YES
スクエア o YES
パノラマ x NO