iOS & Swift 공부 - Photos Framework (PhotoKit)

김영채 (Kevin)·2021년 2월 11일
0

iOS & Swift

목록 보기
74/107

Photos 프레임워크 (PhotoKit)


  • 사진 및 비디오에 직접 접근하기 위한 Photos 프레임워크
  • 이 Framework를 사용하여 화면에 표시 및 재생할 Asset 를 검색하고 이미지 또는 비디오를 편집하거나 앨범, 특별한 순간 및 iCloud 공유 앨범과 같은 Asset 를 사용하여 작업할 수 있음.

Asset


Asset Collection

→ Asset Collection 하나에 여러 Asset 들이 있는 형태

Collection List

Collection List > Asset Collection > Asset

→ PHAsset, PHAssetCollection, PHCollectionList 의 인스턴스는 Photo app 에서 Asset (이미지, 비디오, 라이브 포토), 에셋 컬렉션(앨범, 특별한 순간) 및 사용자가 작업하는 항목을 나타낸다.

note: Collection List (앨범 폴더, 특별한 순간 등)은 읽기 전용임. 변경 불가 → Meta data 만 포함

Photos Library 상호작용


PHPhotoLibrary 객체를 사용하여 사진 콘텐츠에 접근하고, 에셋 및 컬렉션을 변경할 수 있도록 애플리케이션의 사용자 권한을 얻는다. 권한을 얻으면 사진 라이브러리가 변경될 때 변경사항을 전달받을 수 있음.

에셋 검색과 조사

이 모델 클래스는 사진 라이브러리의 콘텐츠(에셋, 컬렉션)을 나타낸다. 읽기 전용이며 변경 불가능하며 메타 데이터만 포함한다. 에셋과 컬렉션을 사용하려면 이 클래스를 사용하여 지정한 쿼리와 일치하는 객체를 가져온다

  • PHAsset

    사진 라이브러리의 이미지, 비디오, 라이브 포토를 나타냅니다.

  • PHAssetCollection

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

  • PHCollectionList

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

  • PHCollection

    에셋 컬렉션 및 컬렉션 리스트의 추상 수퍼 클래스입니다.

  • PHObject

    모델 객체(에셋 및 컬렉션)의 추상 수퍼 클래스입니다.

  • PHFetchResult

    가져오기 메서드에서 반환된 에셋 또는 컬렉션의 정렬된 목록입니다.

  • PHFetchOptions

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

에셋 콘텐츠 로딩

이 클래스를 사용하여 이미지, 비디오, 라이브 포토 콘텐츠를 요청할 수 있다.

  • PHImageManager

    미리보기 썸네일 및 에셋과 전체 크기의 이미지 또는 비디오 데이터를 검색하거나 생성하는 방법을 제공합니다.

  • PHCachingImageManager

    많은 에셋을 일괄적으로 미리 로딩하기 위해 최적화된 에셋과 관련된 섬네일 및 전체 크기의 이미지 또는 비디오 데이터를 검색하거나 생성하는 방법을 제공합니다.

  • PHImageRequestOptions

    이미지 매니저로부터 요청한 에셋 이미지의 영향을 주는 옵션들입니다.

  • PHVideoRequestOptions

    이미지 매니저로부터 요청한 비디오 에셋 데이터의 영향을 주는 옵션들입니다.

  • PHLivePhotoRequestOptions

    이미지 매니저로부터 요청한 라이브 포토 에셋의 영향을 주는 옵션들입니다.

  • PHLivePhoto

    캡처 직전과 직후 순간의 움직임 및 소리가 포함된 라이브 사진을 표현합니다.

변경 요청

에셋이나 컬렉션을 변경하려면 변경 요청 객체를 만들고 명시적으로 사진 라이브러리에 반영합니다. 이 방법을 사용하면 여러 스레드 또는 여러 애플리케이션 및 애플리케이션 확장에서 같은 에셋을 가지며 쉽고, 안전하며 효율적으로 작업할 수 있습니다.

  • PHAssetChangeRequest

    사진 라이브러리 변경 블록(클로저)에서 사용하기 위해 에셋의 생성, 삭제, 메타 데이터 수정할 변경 요청 객체입니다.

  • PHAssetCollectionChangeRequest

    사진 라이브러리 변경 블록(클로저)에서 사용하기 위해 에셋 컬렉션을 생성, 삭제, 수정할 변경 요청 객체입니다.

  • PHCollectionListChangeRequest

    사진 라이브러리 변경 블록(클로저)에서 사용하기 위해 컬렉션 리스트 생성, 삭제, 수정할 변경 요청 객체입니다.

에셋 콘텐츠 수정

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

  • PHContentEditingInput

    편집할 에셋의 이미지, 비디오, 라이브 포토의 콘텐츠에 대한 정보와 접근 권한을 제공하는 컨테이너입니다.

  • PHContentEditingOutput

    에셋의 사진, 비디오, 라이브 포토의 콘텐츠를 편집한 결과를 제공하는 컨테이너입니다.

  • PHAdjustmentData

    편집 효과를 재구성하거나 되돌릴 수 있는 에셋의 사진, 비디오, 라이브 포토 콘텐츠의 수정사항에 대한 설명입니다.

위 내용은 "https://www.boostcourse.org/mo326/lecture/16867" 을 참고하여 공부한 내용을 개인적으로 정리하였습니다.

profile
맛있는 iOS 프로그래밍

0개의 댓글