2016년 9월 4일 일요일

PHImageManager를 이용한 사진이미지 로드 @@ in Swift2.x - Xcode 7.3 iOS 9.3



PHImageManager를 이용한 앨범의 Thumbnail 로 이용할 사진 이미지 불러오기

<참조>
https://developer.apple.com/reference/photos/phimagemanager

앨범 리스트에서 앨범의 Thumbnail 이미지로 사용 될 이미지를 불러오도록 하겠습니다.
PHFetchResult 에 특정앨범의 이미지타입의 파일을 가져와 마지막에 있는 이미지 파일(최근 날짜 이미지)로 가져오도록 한다.

<주요기능을 담당하는 코드>

이미지 파일만 불러오도록 옵션 값 설정
let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.Image.rawValue)

앨범 정보 가져오기>      
let assetsFetchResult: PHFetchResult = PHAsset.fetchAssetsInAssetCollection(AlbumsResult, options: fetchOptions)

마지막 사진이미지 선택
let imageAsset = assetsFetchResult.lastObject as? PHAsset 

이미지 로드
manager.requestImageForAsset(imageAsset, targetSize: CGSize, contentMode: .AspectFill, options: requestOptions, resultHandler: { (image, info) -> Void in ..


<완성된 코드>
func getThumbnailWithIdentifer(AlbumsResult:PHAssetCollection, groesse: CGSize, completion: (image:UIImage?) -> Void) {
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)) {
  // 앨범 타이틀을 이용해 특정 앨범의 사진들을 가져온다
    let fetchOptions = PHFetchOptions()
    fetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.Image.rawValue)
    let manager = PHImageManager.defaultManager()
    let assetsFetchResult: PHFetchResult = PHAsset.fetchAssetsInAssetCollection(AlbumsResult, options: fetchOptions)
    if assetsFetchResult.count > 0 {
    // 가져온 사진중 마지막 사진을 선택하고
      if let imageAsset = assetsFetchResult.lastObject as? PHAsset {
      // 불러올 사진의 이미지 옵션값을 넣은 다음
      let requestOptions = PHImageRequestOptions()
      requestOptions.synchronous = false
      requestOptions.deliveryMode = .HighQualityFormat
      //requestImageForAsset 을 이용해 이미지를 불러온다
      manager.requestImageForAsset(imageAsset, targetSize: groesse, contentMode: .AspectFill, options: requestOptions, resultHandler: { (image, info) -> Void in
      completion(image: image)
      })
      } else {
       completion(image: nil)
      }
   } else {
    completion(image: nil)
   }
  }
}



댓글 없음:

댓글 쓰기

추천 게시물

애플 개발자 등록방법 2016년 5월 8일 기준!!

애플 개발자 등록 절차 1. 개발자 등록 페이지 이동    애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조)   >> Enroll 클릭 >> 무조건 승인!! ...