系统提供的UIImagePickerController

Posted 王权

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统提供的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);

以上是关于系统提供的UIImagePickerController的主要内容,如果未能解决你的问题,请参考以下文章

从照片中获取详细信息

UIImagePicker 的内存问题

UIImagePickerController 打破状态栏的外观

在 UIPopoverController 中使用 UIImagePickerController 后播放视频消失

如何快速从 UIImagePickerController 获取 UIImage 元数据?像“.location”

在 iPad 上以纵向模式启动图像选择器