如何从自定义相册中获取所有图像 - swift [英] How to fetch all images from custom Photo Album - swift

查看:364
本文介绍了如何从自定义相册中获取所有图像 - swift的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何从自定义相册中获取所有图片

var fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key:"creationDate", ascending: false)]
fetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.Image.rawValue)
let allImages:PHFetchResult = PHAsset.fetchKeyAssetsInAssetCollection(albumList[index].collection, options: fetchOptions)

此代码块仅提取其中一些。
谢谢。

This code block is fetching just few of them. Thanks.

- > albumList [index] .collection 的类型是 PHAssetCollection

-> albumList[index].collection 's type is PHAssetCollection

推荐答案

使用此答案https://stackoverflow.com/a/28904792/4795651 为自己编辑了一点。

using this answer https://stackoverflow.com/a/28904792/4795651 edited a little for myself.

import Photos


func FetchCustomAlbumPhotos()
{
    var albumName = "SwiftAlbum"
    var assetCollection = PHAssetCollection()
    var albumFound = Bool()
    var photoAssets = PHFetchResult()

    let fetchOptions = PHFetchOptions()
    fetchOptions.predicate = NSPredicate(format: "title = %@", albumName)
    let collection:PHFetchResult = PHAssetCollection.fetchAssetCollectionsWithType(.Album, subtype: .Any, options: fetchOptions)

    if let first_Obj:AnyObject = collection.firstObject{
        //found the album
        assetCollection = collection.firstObject as! PHAssetCollection
        albumFound = true
    }
    else { albumFound = false }
    var i = collection.count
    photoAssets = PHAsset.fetchAssetsInAssetCollection(assetCollection, options: nil)
    let imageManager = PHCachingImageManager()

    //        let imageManager = PHImageManager.defaultManager()

    photoAssets.enumerateObjectsUsingBlock{(object: AnyObject!,
        count: Int,
        stop: UnsafeMutablePointer<ObjCBool>) in

        if object is PHAsset{
            let asset = object as! PHAsset
            print("Inside  If object is PHAsset, This is number 1")

            let imageSize = CGSize(width: asset.pixelWidth,
                height: asset.pixelHeight)

            /* For faster performance, and maybe degraded image */
            let options = PHImageRequestOptions()
            options.deliveryMode = .FastFormat
            options.synchronous = true

            imageManager.requestImageForAsset(asset,
                targetSize: imageSize,
                contentMode: .AspectFill,
                options: options,
                resultHandler: {
                    (image, info) -> Void in
                    self.photo = image!
                    /* The image is now available to us */
                    self.addImgToArray(self.photo)
                    print("enum for image, This is number 2")

            })

        }
    }
}

func addImgToArray(uploadImage:UIImage)
{
    self.images.append(uploadImage)

}

这篇关于如何从自定义相册中获取所有图像 - swift的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆