티스토리 뷰

반응형

안녕하세요 :) Zedd입니다.

이 글이 왜 올라오는지는....PhotoKit(2)글이 올라오면 보실 수 있을겁니다.

ㅋ-ㅋ


PhotoKit - PHImageManager/PHCachingImageManager



PHImageManager는 썸네일 이미지 및 asset 데이터를 쉽게 검색(retrieving)하거나 생성하는 객체에요.

이 PHImageManager에 있는 메소드들을 사용하여 전체 크기(full-size) 사진 asset 또는 썸네일 이미지를 가져올 수 있습니다. 

또한, 비디오 asset을 재생, 내보내기 및 조작하기 위한 AVFoundation객체를 가져올 수 있습니다.


이미지 또는 비디오 데이터를 로드하려면

1. PHAsset클래스를 사용하여 관심있는 asset을 가져옵니다.

2. default()메소드를 호출하여 shared image manager객체를 검색합니다.

3. asset의 이미지 또는 비디오 데이터를 로드하려면,  Requesting Images 및 Requesting Video Objects에 나열된 메소드 중 하나를 사용하세요.


image manager는 제공하는 asset이미지와 데이터를 캐시하므로 유사한 매개변수를 사용하는 동일한 asset에 대한 이후 요청은 결과를 더 빨리 반환합니다.

여러 asset의 이미지 데이터를 함께 로드해야하는 경우, PHCachingImageManager클래스를 사용하여, 필요한 이미지를 로드하여 캐시를 "준비"하세요.

예를들어, 사진 asset 썸네일로 collectionView를 채우는 경우, 현재 스크롤 위치 보다 먼저 이미지를 캐시 할 수 있습니다.






PHCachingImageManager는 미리보기 썸네일을 검색하거나 생성 할 수 있는 객체로, 배치(batch)에서 많은 수의 asset을 미리 로드하도록 최적화 되어있습니다.


많은 asset으로 작업 할 때, 빠른 성능을 위해 caching image manager는 나중에 개별 이미지를 요청 할 때, 지연되는 것을 방지하기 위해 asset image를 백그라운드에서 준비 할 수 있습니다. 예를들어, 사진 또는 비디오 asset의 썸네일을 사용하여 collectionView 또는 비슷한 UI를 채우려면, caching image manager를 사용하세요.

PHCachingImageManager 클래스의 주요 기능은, 대부분 슈퍼클래스인 PHImageManager에 의해 정의됩니다. 

 caching image manager를 사용하려면

1. PHCachingImageManager인스턴스를 만듭니다. 

2. PHAsset클래스 메소드를 사용하여 관심있는 asset을 가져옵니다.

3. 이러한 asset에 대한 이미지를 준비하려면, 나중에 개별 asset에 대한 이미지를 요청 할 때 사용 할 계획인 target size, content mode 및 옵션과 함께, startCachingImages(for:targetSize:contentMode:options:)메소드를 호출하세요.

4. 개별 asset에 대한 이미지가 필요한 경우, requestImage(for:targetSize:contentMode:options:resultHandler:)메소드를 호출하고, 해당 asset을 준비 할 때 사용한 매개변수와 동일한 매개변수를 전달합니다. 


요청한 이미지가 이미 준비된 이미지 중 하나인 경우, PHCachingImageManager객체는 해당 이미지를 즉시 반환합니다.

그렇지 않으면 사진이 필요에 따라 이미지를 준비하고, 나중에 사용하기 위해 캐싱합니다.



start/stop caching image메소드가 있어서 쉽게 캐싱할 수 있어요!

물론  caching image manager도 부모가 PHImageManager니까 PHImageManager의 메소드들 도 다 쓸 수 있는 건 당연하겠죠?


아무튼 알아야 할 것은, PHAsset안에 이미지가 있는 것이 아니라, asset과 여러가지 파라미터를 Image Manager에게 주어서 "요청"해야 한다는 점!

반응형

'iOS' 카테고리의 다른 글

iOS ) animateKeyframes, addKeyframe사용해보기  (0) 2018.11.23
iOS ) PhotoKit (2) - 미디어 가져오기  (13) 2018.11.09
iOS ) Task Management - Undo - UndoManager  (0) 2018.11.02
iOS ) PhotoKit (1)  (0) 2018.10.27
iOS ) Social 사용해보기  (2) 2018.10.24