iOS 获取图片有三种方法:

1. 直接调用摄像头拍照

2. 从相册中选择

3. 从图库中选择

 self.picker = [[UIImagePickerController alloc] init];//    UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypePhotoLibrary;//    picker.sourceType = sourceType;  // 后边经赋值self.picker.delegate = self;self.picker.allowsEditing = YES; //是否可编辑UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"选择头像" message:@"从..选择" preferredStyle:UIAlertControllerStyleActionSheet];// 先判断支不支持if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {NSLog(@"支持相机");UIAlertAction *action0 = [UIAlertAction actionWithTitle:@"相机拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;[self presentViewController:self.picker animated:YES completion:nil];}];[alert addAction:action0];}if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {NSLog(@"支持图库");UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"从图库中选择" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {self.picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;[self presentViewController:self.picker animated:YES completion:nil];}];[alert addAction:action1];}if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) {NSLog(@"支持相片库");UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"从相册中选取" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {self.picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;[self presentViewController:self.picker animated:YES completion:nil];}];[alert addAction:action2];}UIAlertAction *action3 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {NSLog(@"取消");}];[alert addAction:action3];[self presentViewController:alert animated:YES completion:nil];
</pre><p>协议 声明</p><p></p><pre name="code" class="objc">@interface ViewController ()<UIImagePickerControllerDelegate, UINavigationControllerDelegate>@property (nonatomic, strong) UIImagePickerController *picker;@end

实现两个委托方法

#pragma mark -选择完成
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {//判断媒体资源类型,(图片或者是视频)NSString *imageType = [info objectForKey:UIImagePickerControllerMediaType];UIImage *gerenimage = nil;//如果是图片资源if ([imageType isEqualToString:@"public.image"]) {gerenimage = [info objectForKey:UIImagePickerControllerOriginalImage];}
//    //取到从系统图片库选择的图片或者照相机拍摄的图片
//    if (picker.sourceType == UIImagePickerControllerSourceTypePhotoLibrary) {
//        gerenimage = [info objectForKey:UIImagePickerControllerOriginalImage];
//
//    }else if(picker.sourceType == UIImagePickerControllerSourceTypeCamera){
//        gerenimage = [info objectForKey:UIImagePickerControllerEditedImage];
//    }
//    UIImageOrientation imageOrientation=gerenimage.imageOrientation;
//    if(imageOrientation!=UIImageOrientationUp)
//    {
//        // 原始图片可以根据照相时的角度来显示,但UIImage无法判定,于是出现获取的图片会向左转90度的现象。
//        // 以下为调整图片角度的部分
//        UIGraphicsBeginImageContext(gerenimage.size);
//        [gerenimage drawInRect:CGRectMake(0, 0, gerenimage.size.width, gerenimage.size.height)];
//        gerenimage = UIGraphicsGetImageFromCurrentImageContext();
//        UIGraphicsEndImageContext();
//        // 调整图片角度完毕
//    }UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 300, 150, 150)];imageView.image = gerenimage;[self.view addSubview:imageView];// 转成二进制// NSData * data = UIImageJPEGRepresentation(gerenimage, 0.001); // 压缩JPEG图片(图片 压缩系数)[self dismissViewControllerAnimated:YES completion:nil];
}#pragma makr -取消
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {[self dismissViewControllerAnimated:YES completion:nil];
}

UIPickerViewController 打开相机 图库 相册相关推荐

  1. Vue+Element-UI 上传图片,打开相机,相册

    Vue+Element-UI 上传图片,打开相机,相册 Element-UI中提供的Upload组件,是用来上传文件用的,并没有单独的纯用来上传图片的组件,所以,在部分浏览器(手机)中,打开后会发现是 ...

  2. android调用相机与相册的方法,Android打开相机和相册实例代码

    本文实例为大家分享了Android打开相机和相册具体代码,供大家参考,具体内容如下 打开相机 /** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 ...

  3. 关于手机横屏打开相机或者相册闪退解决方案

    今天遇到一个需求就是在手机横屏的时候要打开相册相机,但是在打开的手就报错,经过一上午的查资料,看文档,知道了问题所在,原来UIImagePickerController 只支持竖屏 解决思路 1,让U ...

  4. html5plus请求打开相机权限,iOS与H5交互 询问相机、相册权限的问题

    问题背景: 某个H5页面中需要打开手机本地相册及照相机,用户选择某几张图片之后上传至服务器上.纯H5完成的话,当打开相机或者相册时,第一次会正常询问权限,但是如果用户点击了不允许之后,询问弹窗不再能弹 ...

  5. unityios相册_Unity与IOS进行交互,调用IOS系统的相机和相册

    前两篇文章总结了Unity与Android之间的简单交互以及Android系统相机和相册的使用. 更痛苦的是,后来发现在不同的测试机器上会有不同的错误. . . 下一阶段应该一步一步解决 总结当今与I ...

  6. Android 调用系统打开相机,打开相册获取图片路径

    我们在开发中经常遇到一些功能需要调取系统相机拍照获取图片,或者有的时候直接打开图库获取图片,那我们怎么获取呢,今天分享下, 第一步,打开相机 public static final int CAMER ...

  7. Android 之 打开相机 打开相册

    Android 之 打开系统摄像头拍照 打开系统相册,并展示 1,清单文件 AndroidManifest.xml ``` <uses-permission android:name=" ...

  8. 打开相机拍照或从相册中选择照片

    1.添加权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ...

  9. android点击按钮打开相册,打开相机的代码

    打开相册 首先在onclick方法中: Intent intent = new Intent(); intent.setType("image/*");// 开启Pictures画 ...

最新文章

  1. java kinect 人体识别_深度图像的Kinect骨架算法
  2. matlab 颜色图名称
  3. 100万“愤怒的小鸟”:中国手机开发者生存调查
  4. 确定活动的热点垃圾收集器
  5. iOS开发针对对Masonry下的FPS优化讨论
  6. 火爆全网的迁移学习简明手册全面更新,重磅出版上市!
  7. k8s高可用集群多个主节点_k8s-高可用集群实现(keepalived)
  8. Ping记录时间的方法
  9. 设计模式之创建型单例模式
  10. CodeSheep谈前后端选择
  11. 懒人查看python源码方法
  12. 照片放大不清晰怎么处理?用嗨格式图片无损放大器
  13. 视频播放可弹出弹幕,关闭弹幕
  14. ASP.NETCoreWeb教程一:创建和理解Web应用程序,细致入微
  15. 1998年11月11日,马化腾和同学张志东正式注册——腾讯
  16. FMA20180529
  17. 1-10 Java 继承、protected和abstract抽象类
  18. Trash Problem
  19. Instant wisdom
  20. 那些我们不知道的事儿!——Final Cut Pro for Mac

热门文章

  1. Unity SKFramework框架(二十三)、MiniMap 小地图工具
  2. ssm整合redis和mysql_ssm整合redis - 开源中国首席碉堡了的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. nRF52840低功耗蓝牙模块芯片
  4. python控制苹果手机实现自动功能_Python实现macOS中简单的自动操作
  5. 内网安全第二章内网信息的收集下
  6. 贴片电阻阻值降低失效分析
  7. 苏州工业园区地税局:虚拟化重在实践
  8. idea本地配置连接远程hadoop集群的一些网络问题解决汇总
  9. 非传染性的另类“红眼症”——表层巩膜炎
  10. 使用pyqt5制作简单时钟小工具