iOS - 使用QBImagePickerController选取图片

使用QBImagePickerController选取图片


首先使用pod引入

pod 'QBImagePickerController', '~>2.5.1'
#- Homepage: https://github.com/questbeat/QBImagePicker
#3.0需要iOS SDK 8.0

导入

#import <QBImagePickerController.h>

声明并设置delegate

    QBImagePickerController * imagePickerController;

init
- (void)initQBimagePickerController {
    imagePickerController = [[QBImagePickerController alloc]init];
    imagePickerController.prompt = @"选择图片";
    imagePickerController.allowsMultipleSelection = YES;
    imagePickerController.showsNumberOfSelectedAssets = YES;
    imagePickerController.delegate = self;
}

delegate方法
#pragma mark imagePickerControllerdelegate
-(void)qb_imagePickerController:(QBImagePickerController *)imagePickerController didSelectAssets:(NSArray *)assets {
    [self dismissViewControllerAnimated:YES completion:^{
        NSLog(@"%@",assets);
        [imageMutableArray removeAllObjects];
        for (ALAsset * asset in assets) {
            
            ALAssetRepresentation *assetRep = [asset defaultRepresentation];
            CGImageRef imgRef = [assetRep fullResolutionImage];   //获取高清图片
            UIImage *img = [UIImage imageWithCGImage:imgRef
                                               scale:assetRep.scale
                                         orientation:(UIImageOrientation)assetRep.orientation];
            CGImageRef ref = [asset thumbnail];    //获取缩略图
            UIImage *thumbnailImg = [[UIImage alloc]initWithCGImage:ref];
            [imageMutableArray addObject:thumbnailImg];
        }
        [imageMutableArray addObject:[UIImage imageNamed:@"更多"]];
        [self.imageCollectionView reloadData];
    }];
}

-(void)qb_imagePickerControllerDidCancel:(QBImagePickerController *)imagePickerController {
    [self dismissViewControllerAnimated:YES completion:^{
        
    }];
}


附:

获得的ALAsset对象就是相片对象:其中有相片的缩略图,全屏图,高清图,url等属性。

ALAsset *result = [assets objectAtIndex:index];


获取url:

String类型:

NSString *url = [[[result

defaultRepresentation]url]description];


URL类型:

NSURL *url = [[result defaultRepresentation]url];


获取缩略图:

CGImageRef  ref = [result thumbnail];

UIImage *img = [[UIImage alloc]initWithCGImage:ref];


获取全屏相片:

CGImageRef ref = [[result  defaultRepresentation]fullScreenImage];

UIImage *img = [[UIImage alloc]initWithCGImage:ref];


获取高清相片:

CGImageRef ref = [[result  defaultRepresentation]fullResolutionImage];

UIImage *img = [[UIImage alloc]initWithCGImage:ref];



存在问题:

  • 该PickerController会保存每次的选择项,暂没找到方法去掉
  • self.imageCollectionView显示图片的CollectionView又一个恒定的显示在最后一项的加号,如何更好的实现


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值