zoukankan      html  css  js  c++  java
  • 自定义实现从系统相册中取照片

        //查看是否授权了。

        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;

            }];

        }];

  • 相关阅读:
    用 Java 通过串口发送手机短信(二)简单使用
    jquery.lazyload.js实现图片延迟加载——wordpress图片随滚动条渐显效果
    java的mysql连接池
    html5客户端本地存储之sessionStorage及storage事件
    flash chart(amCharts的破解)
    实现igoogle效果的两种方法比较
    “SQL Server (SQL2005) 服务因 126 (0x7E) 服务性错误而停止”的解决方法 
    一个超简单的方法验证文本框中内容的数据类型
    我的对联
    Ajax调用后类方法时报”对象未定义“错误解决方法
  • 原文地址:https://www.cnblogs.com/huoran1120/p/5239634.html
Copyright © 2011-2022 走看看