• 自定义实现从系统相册中取照片


    //查看是否授权了。

        if ([PHPhotoLibrary authorizationStatus] != PHAuthorizationStatusAuthorized){

            NSLog(@"没有授权");

        }

        

         //PHAsset 可以表示一个图片的信息  相册信息

         //PHFetchResult 数组

    //1.读取所有相册的信息

        PHFetchResult *collectonResult = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumScreenshots|PHAssetCollectionSubtypeSmartAlbumVideos|PHAssetCollectionSubtypeSmartAlbumUserLibrary options:nil];

        

        //2. 遍历整个相册,对某一个具体相册进行操作

        [collectonResult enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

            

            //这个相册的信息

            PHAssetCollection *assetCollection = (PHAssetCollection *)obj;

            

            //按照创建时间的先后顺序查找

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

            option.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:YES]];

            

            //获取这个相册里面所有图片的信息

            PHFetchResult *albumResult = [PHAsset fetchAssetsInAssetCollection:assetCollection options:option];

            

            //获取相册的名字

            NSString *albumName = assetCollection.localizedTitle;

            //这个相册的相片个数

            NSInteger count = albumResult.count;

            

            NSLog(@"%@ (%ld)", albumName, count);

            

            //读取相册里面的最近的一张图片信息PHAsset

            PHAsset *lastAsset = [albumResult lastObject];

            

            /*

             targetSize: 需要读取的图片的尺寸

             contentMode: 图片以什么方式拉伸 AspectFit

             */

            //读取图片的选项 异步

            /*

             resizeMode:

             exact:高清图片 原图 当选择原图 那么targetSize必须是原图的大小

                   PHImageManagerMaximumSize

             fast: 以最快的速度读取 (像素低)

             none:

             */

            PHImageRequestOptions *imageOptions = [[PHImageRequestOptions alloc] init];

            imageOptions.resizeMode = PHImageRequestOptionsResizeModeFast;

            

            __weak ViewController *weakSelf = self;

            [[PHImageManager defaultManager] requestImageForAsset:lastAsset targetSize:CGSizeMake(80, 80) contentMode:PHImageContentModeAspectFit options:imageOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {

                weakSelf.iconImageView.image = result;

            }];

        }];

  • 相关阅读:
    比尔盖茨,乔布斯,扎克伯格,Linus 等巨佬的办公桌
    快速从 Windows 切换到 Linux 环境
    海外开发者账号上架总结
    Chrome 浏览器对标签进行整理和分组的功能太棒了!
    最受嵌入式软件工程师青睐的系统
    我最喜欢的云 IDE 有哪些?
    前端zip包下载
    el-upload上传组件(隐藏上传按钮/隐藏文件删除标记)
    滚动条样式
    使用ul标签制作简单的菜单(vue模板)
  • 原文地址:https://www.cnblogs.com/damonWq/p/5342876.html
Copyright © 2020-2023  润新知