系统提供的UIImagePickerController

1.从系统相册中读取

     /*

     判断选择的读取类型是否支持

     UIImagePickerControllerSourceTypePhotoLibrary,普通相册

     UIImagePickerControllerSourceTypeCamera, 镜头(拍照、录视频)

     UIImagePickerControllerSourceTypeSavedPhotosAlbum(自己保存的图片)

     */

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

        self.imagePC = [[UIImagePickerController alloc] init];

        _imagePC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

        

        //相册操作由代理来监听 取消还是选择完成

        _imagePC.delegate = self;

        

        //展示相册

        [self presentViewController:_imagePC animated:YES completion:nil];

    }

2.拍照录视频

  if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        self.imagePC = [[UIImagePickerController alloc] init];

        _imagePC.delegate = self;

        _imagePC.sourceType = UIImagePickerControllerSourceTypeCamera;

        //图片 public.image

        //视频 public.movie

        _imagePC.mediaTypes = @[@"public.movie"];

        [self presentViewController:_imagePC animated:YES completion:nil];

    }

3.代理

读取图片或者视频 统一回调这个代理

系统相册 一次只能选取一张

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{

    [self dismissViewControllerAnimated:YES completion:nil];

    

    NSLog(@"%@", info);

//    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

//    NSData *data = UIImagePNGRepresentation(image);

//    NSUInteger byte = data.length/8;

//    NSUInteger k = byte / 1024;

//    NSUInteger m = k / 1024;

//    NSLog(@"%ld", m);计算照片大小

}

 

//取消按钮被按了

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{

    [self dismissViewControllerAnimated:YES completion:nil];

}

4.将图片保存到系统相册

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

原文地址:https://www.cnblogs.com/damonWq/p/5342861.html