美文网首页
UIImagePickerController的简单应用

UIImagePickerController的简单应用

作者: Mustard_Buli | 来源:发表于2016-03-22 11:42 被阅读48次

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的简单应用

      本文链接:https://www.haomeiwen.com/subject/fnfllttx.html