iOS获取本地照片以及拍照

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

//先提几个参数
小结: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:^{
        
    }];
}

万里长城始于足下~~~~
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,613评论 25 709
  • 第二章:弟弟 自從何若在王杰口中說要用他弟弟威脅自己的時候,他心裡一點不好受;他不停地想:「為什麼要這樣對我,我...
    PhantomMao阅读 324评论 0 0
  • 突然有一种很复杂的心情,【预售总结】预示着预售工作要结束了,人生中的又一转折点,又一次面临选择,面临分离。 三个月...
    Smile_Zhangjie阅读 463评论 0 5
  • 不觉间已快三十了,从毕业到现在一直在焦虑中工作,经常反思自己的能力提高了吗,将来如果出去了自己能做什么,自己的一技...
    eelq阅读 325评论 0 0