美文网首页
iOS获取本地照片以及拍照

iOS获取本地照片以及拍照

作者: 哈哈大p孩 | 来源:发表于2016-05-16 11:09 被阅读1028次

这两天帮个小学弟写毕设的时候写到这个获取照片功能,还有点忘记了,写在这里,方便查询

//先提几个参数
小结:1.UIImagePickerControllerSourceTypePhotoLibrary  图片列表
     UIImagePickerControllerSourceTypeCamera        摄像头
     UIImagePickerControllerSourceTypeSavedPhotosAlbum 相机相册

   2.在调取摄像头和调取相册的时候我们可以重用协议中的方法

   3.UIImagePickerController是继承 UINavigationController,所以可以push和pop一些viewcontroller进行导航效果。例如,自定义照相机画面的时候可以在拍摄完后push一个viewcontroller用于对照片进行编辑
我们要对我们拍摄的照片和视频进行存储,那么就要实现UIImagePickerControllerDelegate协议的方法
UIImagePickerControllerDelegate, UINavigationControllerDelegate
//摄像头
- (void)openCamera:(UIButton *)btn {
    // UIImagePickerControllerCameraDeviceRear 后置摄像头
//    UIImagePickerControllerCameraDeviceFront 前置摄像头
    
    //判断摄像头是否可用
    BOOL isCamera = [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
    
    if (!isCamera) {
        NSLog(@"没有摄像头");
        return;
    }
    //初始化图片选择控制器
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;//设置通过照相来选取照片
    
    imagePicker.allowsEditing = YES; //设置拍照时的下方的工具栏是否显示,如果需要自定义拍摄界面,则可把该工具栏隐藏
    imagePicker.delegate = self;
    [self presentViewController:imagePicker animated:YES completion:nil];
//    [imagePicker dismissViewControllerAnimated:YES completion:NULL];//以模态的方式隐藏视图
}
// 相册
- (void)openPics:(UIButton *)btn {
    UIImagePickerController *controller = [[UIImagePickerController alloc] init];//初始化图片选择控制器
    [controller setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];// 设置类型
    [controller setDelegate:self];// 设置代理
    [self presentViewController:controller animated:YES completion:^{
        
    }];//以模态的方式弹出视图
}
实现的代理方法

//得到图片或者视频后, 调用该方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    //在这个方法里我们可以进行图片的修改, 保存, 或者视频的保存
    // UIImagePickerControllerOriginalImage 原始图片
    // UIImagePickerControllerEditedImage 编辑后图片
    UIImageView *imageView = (UIImageView *)[self.view viewWithTag:101];
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    imageView.image = image;
    [picker dismissViewControllerAnimated:YES completion:NULL];
}

//当用户取消相册时, 调用该方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [picker dismissViewControllerAnimated:YES completion:^{
        
    }];
}

万里长城始于足下~~~~

相关文章

网友评论

      本文标题:iOS获取本地照片以及拍照

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