본문 바로가기

iOS

[iOS] Photos Framework

Photos Framework

iOS 및 macOS에서 사진 애플리케이션, 사진 확장 기능을 지원하는 클래스를 제공

iCloud 사진 라이브러리를 포함하여 사진 및 비디오에 직접 접근 가능

• 화면에 표시, 재생할 Asset을 검색

• 이미지 또는 비디오를 편집

• 앨범, 특별한 순간, iCloud 공유 앨범과 같은 에셋을 사용해 작업

 

 

Photos Framework 모델 클래스

 

1. 에셋 : PHAsset (이미지, 비디오, 라이브 포토)

 

2. 에셋 컬렉션 : PHAssetCollection (앨범(+스마트 앨범), 특별한 순간 등)

 

3. 컬렉션 리스트 : PHCollectionList (앨범의 폴더, 사용자가 작업하는 항목, 연도 등)


객체 가져오기 및 변경 요청

이 객체들은 읽기 전용이며 변경할 수 없고, 메타 데이터만 포함함

해당 객체를 사용해서, 작업해야 하는 데이터를 가져와 에셋 및 컬렉션 작업을 할 수 있다.

변경 요청을 하려면 변경 요청 객체를 만들고, 이를 공유 PHPhotoLibrary 객체에 명시적으로 알려줌

 

변경 관찰

가져온 에셋, 컬렉션에 대한 변경 핸들러를 등록할 때 shared PHPhotoLibrary 객체를 사용

다른 애플리케이션이나 기기가 에셋의 콘텐츠, 컬렉션의 리스트 등을 변경할 때마다 애플리케이션에 알려줌

PHChange 객체는 변경 전후의 객체 상태에 대한 정보를 제공 

➡️ 쉽게 컬렉션 뷰 및 유사한 인터페이스를 업데이트할 수 있도록 함

 

Photos 애플리케이션의 기능들을 지원

PHCollectionList 클래스를 사용해 사진 앱의 특별한 순간 계층에 해당하는 에셋을 찾을 수 있음

PHAsset 클래스를 사용해 파노라마, 고프레임 비디오 등을 식별할 수 있음

iCloud 사진 라이브러리가 활성화되면 Photos 프레임워크의 에셋과 컬렉션에도 같은 내용이 반영됨

 


 

에셋 검색

에셋과 컬렉션을 사용하려면 이 클래스를 사용해 지정한 쿼리와 일치하는 객체를 가져옴

 

PHAsset 

A representation of an image, video, or Live Photo in the Photos library.

: 사진 라이브러리의 이미지, 비디오, 라이브 포토를 나타냄 (1개 !!) 

class PHAsset : PHObject

 

PHAssetCollection

A representation of a Photos asset grouping, such as a moment, user-created album, or smart album.

: 특별한 순간, 사용자정의 앨범 또는 스마트 앨범과 같은 사진, 에셋 그룹을 나타냄

class PHAssetCollection : PHCollection

 

PHCollectionList

A group containing Photos asset collections, such as Moments, Years, or folders of user-created albums.

: 특별한 순간, 사용자정의 앨범, 특별한 순간들 연도와 같은 에셋 컬렉션이 포함된 그룹을 나타냄

class PHCollectionList : PHCollection

 

PHFetchResult

An ordered list of assets or collections returned from a Photos fetch method.

: Fetch 메소드에서 반환된 에셋, 컬렉션의 정렬된 목록

class PHFetchResult<ObjectType> : NSObject where ObjectType : AnyObject

NSArray 클래스에서 사용되는 것과 같은 메소드, 컨벤션을 사용해 access

 

PHFetchOptions

A set of options that affect the filtering, sorting, and management of results that Photos returns when you fetch asset or collection objects.

: 에셋 또는 컬렉션 객체를 가져올 때 Photos에서 반환하는 결과에 필터링, 정렬 등 영향을 주는 옵션

class PHFetchOptions : NSObject

 

추후 수정 ... 

 

 

에셋 콘텐츠 수정

애플리케이션 또는 확장 프로그램에서 이 클래스들을 사용하여 사진 라이브러리의 편집 및 반영을 위해 에셋 데이터에 접근합니다. 사진들은 각 수정 사항을 버전별로 에셋 및 보정 데이터를 관리 하므로 애플리케이션 또는 확장 프로그램을 사용하여 다른 기기에서도 이전에 수정한 내용을 되돌리거나 계속 사용할 수 있습니다. 사진 편집 확장기능을 만들려면 이 클래스들과 PhotosUI 프레임워크와 같이 사용하세요.

 

 

 

 

에셋 리소스로 작업하기

에셋 리소스 객체는 각 에셋의 데이터 저장소를 나타냅니다. 이러한 객체를 사용해 에셋을 직접 백업하고 복원할 수 있습니다.

 

 

 

 

 

 

[LECTURE] 1) Photos 프레임워크 : edwith

Photos 프레임워크 iOS 및 tvOS에서 iCloud 사진 라이브러리를 포함하여 사진 및 비디오에 직접 접근하기 위한 Photos 프레임워크에 대해 알아봅니다. 학습 목표 1... - 부스트코스

www.edwith.org

 

 

PhotoKit | Apple Developer Documentation

In iOS and macOS, PhotoKit provides classes that support building photo-editing extensions for the Photos app. In iOS, macOS, and tvOS, PhotoKit also provides direct access to the photo and video assets managed by the Photos app. Using PhotoKit, you can fe

developer.apple.com