PHAsset心得

作者: 伊卡洛斯_路西法 | 来源:发表于2016-01-22 18:16 被阅读3268次

    iOS8下获取相册图片,苹果提供了photo.framework的框架,主要用到了PHAsset,PHFetchOptions,PHFetchResult,PHCachingImageManager这几个类。

    1、添加框架

    #import

    2、获取图片索引

    PHFetchOptions * fetchOptions = [[PHFetchOptions alloc] init];

    PHFetchResult * fetchResult =[PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions];

    if ([fetchResult countOfAssetsWithMediaType:PHAssetMediaTypeImage]>0) {

    _fetchResult =fetchResult;

    }

    _fetchResult为类的成员变量

    3、遍历获取图片

    [_fetchResult numerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL * _Nonnull stop){

    [assetArray addObject:asset];

    }];

    assetArray为保存图片数组(包含图片的各类信息,如大小、创建时间、地点等)

    4、取图片

    PHCachingImageManager *imageManager = [[PHCachingImageManager alloc] init];

    [imageManager requestImageForAsset:asset

    targetSize:CGSizeMake(320, 320)

    contentMode:PHImageContentModeAspectFit

    options:nil

    resultHandler:^(UIImage *result, NSDictionary *info) {

    NSLog(@"width:%f height:%f",result.size.width,result.size.height);

    }];

    遍历assetArray可去所有图片。

    相关文章

      网友评论

      • 闻人馨:这种方法获取的图片不是很清晰。有没有那个属性可以修改获取图片的清晰度呢?
        Wang_dong:@needyuki 图片的清晰度要通过获取当前设备的分辨率来计算

      本文标题:PHAsset心得

      本文链接:https://www.haomeiwen.com/subject/szqrkttx.html