头文件:#import <MobileCoreServices/MobileCoreServices.h>

协议:<UINavigationControllerDelegate, UIImagePickerControllerDelegate>

// 调用系统相册获取图片

- (IBAction)getImageFromAlbum:(id)sender {
    // 判断系统相册是否可用(比如用户不允许应用访问他的相册,就不可用)
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
        [self loadImagePickerControllerWithSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    } else  {
        NSLog(@"无法调用系统相册");
    }
}
// 拍照
- (IBAction)takePhoto:(id)sender {
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        [self loadImagePickerControllerWithSourceType:UIImagePickerControllerSourceTypeCamera];
    } else {
        NSLog(@"无法调用相机功能");
    }

}
- (void)loadImagePickerControllerWithSourceType:(UIImagePickerControllerSourceType)type {
    UIImagePickerController *controller = [[UIImagePickerController alloc] init];
    controller.sourceType = type;
    controller.delegate = self; // <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
    controller.allowsEditing = YES;
    [self presentViewController:controller animated:YES completion:nil];
}

#pragma mark - <UIImagePickerControllerDelegate>
// 选完图片时回调
/**
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {}
 */

// 选完媒体资源【(图片)(小视频)】时回调
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    // 判断选中的资源的类型
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
    
    // kUTTypeImage 系统预置的图片资源类型
    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
        UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
        // self.view.backgroundColor = [UIColor colorWithPatternImage:image];
        
        // 将原图压缩成50*50的尺寸
        UIImage *smallImage = [[ImageTool shareTool] resizeImageToSize:CGSizeMake(300,300) sizeOfImage:image];
        self.view.backgroundColor = [UIColor colorWithPatternImage:smallImage];
    }
    
    [picker dismissViewControllerAnimated:YES completion:nil];
}

// 取消【点击cancel的时候触发】
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [picker dismissViewControllerAnimated:YES completion:nil];
}

访问系统相册或调用摄像头相关推荐

  1. mui教程2——窗口管理、调用相册、调用摄像头、调用重力感应、微信朋友圈界面(仿制)分析

    一.窗口管理 1,页面初始化 在app开发中,若要使用HTML5+扩展api,必须等plusready事件发生后才能正常使用,mui将该事件封装成了mui.plusReady()方法,涉及到HTML5 ...

  2. Android 访问系统相册选中图片,并返回该图片的路径

    博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,

  3. iOS——调用系统相册和相机

    iOS--调用系统相册和相机 背景 我们在许多app里可以发现在换头像的时候一般有两个选择,一个是选择本地照片,一个选择是相机也就是直接拍一张照片当头像,另外还有就是可以去修改照片尺寸,所以我们就要知 ...

  4. java 下拉多级联动 头像裁剪 调用摄像头 SpringMVC mybatis SSM

    获取[下载地址]   QQ 313596790 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速 ...

  5. android调用相册和摄像头,Android8.3调用摄像头和相册

    我们平时在使用QQ或微信的时候经常要和别人分享图片,这些图片可以是用手机摄像头拍的,也可以是从相册中选取的.类似这样的功能实在是太常见了,几乎在每个应用程序中都会有,那么本节我们就学习一下调用摄像头和 ...

  6. Android学习-运用手机多媒体-通知使用技巧、调用摄像头拍照、从相册中选取照片、播放音频和视频文件(MediaPlayer、VideoView)

    android提供了一系列的API,使得我们可以在程序中调用很多的多媒体资源,从而编写出更加丰富多彩的应用程序. 使用通知 通知(Notification)是Android系统中比较有特色的一个功能, ...

  7. Android调用系统相册、拍照以及裁剪最简单的实现(兼容7.0)

    这里我只实现功能,具体Android 7.0 的一些细节参考 http://blog.csdn.net/lmj623565791/article/details/72859156 具体步骤: 一.在清 ...

  8. Android基础实战之调用摄像头与相册 | 带实例

    调用摄像头与相册 调用摄像头拍照/从相册选择照片 xml 设置了两个按钮,分别是打开摄像头的按钮,以及打开相册的按钮 <Buttonandroid:id="@+id/take_phot ...

  9. Swift调用相机和系统相册

    首先需要在Info.plist文件中添加两个键值对 然后利用系统类UIImagePickerController调用相机相册,下面已经封装好了类,继承该类调用showImagePickerContro ...

最新文章

  1. [bzoj1477]青蛙的约会
  2. 在FireFox浏览器上,用stopImmediatePropagation阻止冒泡鼠标滚动事件
  3. maven多模块合并打包_Spring Boot 多模块项目实践(附打包方法)
  4. 阿里云+HCT双证认证,架构师年薪达不到25.6万全额退款
  5. Nginx+uWSGI 入门
  6. Java TCP通信概念及实例
  7. 非受检异常(运行时异常)和受检异常的区别等
  8. 假如明天灾难来临_北京医保容灾
  9. pylon保存图片_3.Pylon 以实时图像采集讲解PylonC SDK使用流程 | 学步园
  10. matlab 简单低通滤波器,基于MATLAB的理想低通滤波器的设计
  11. SAP从入门到精通 知识体系
  12. 短信群发行业的短信通道有哪些类别和不同
  13. Monte-Carlo算法(基本原理,理论基础,应用实践)
  14. 程序员如何快速了解和掌握一门新技术
  15. Vue.js快速入门之五:Mockjs的使用和语法详解
  16. Z 字形变换(C语言)
  17. ios android 占有率,Android全球占有率28.4% 超iOS一倍
  18. 华为鸿蒙系统p50,华为p50自带鸿蒙是什么意思_华为p50是鸿蒙系统吗
  19. Centos 7 下joomla简体中文版安装
  20. Dmc雷赛板卡仿写(三):创建类

热门文章

  1. Tensorflow多线程输入数据处理框架(一)——队列与多线程
  2. Ubuntu16.04如何彻底删除Apache2
  3. 【POJ1509】Glass Beads 【后缀自动机】
  4. transition属性值
  5. git review devops过程
  6. 用vs2010打开使用vs2013升级后的WP工程
  7. 使用微波炉的十大忌讳
  8. PHP最简单写文件记日志当前时间
  9. 如何用asp.net向其他服务器post一条信息
  10. FFmpeg通过摄像头实现对视频流进行解码并显示测试代码(新接口)