一、创建项目

这个很简单,创建好了看下面的就行了

二、添加权限

拍照和获取相册都需要先设置权限

三、布局

实现一个简单的布局,同一个界面,一个按钮 Button,一张图片 ImageView

四、实现代码

1、要继承 UIImagePickerControllerDelegate, UINavigationControllerDelegate

2、拍照或从相册选择图片都是通过 UIImagePickerController.init()

设置 sourceType = .camera 是拍照

设置 sourceType = .photoLibrary 是从相册选择图片

3、相册选择或拍照都是通过 imagePickerController 方法返回,如果对图片还要做处理也可以在这里做

import UIKitclass ImageController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate{//图片展示@IBOutlet weak var image: UIImageView!var takingPicture:UIImagePickerController!//点击按钮弹出拍照、相册的选择框@IBAction func getImage(_ sender: Any) {let actionSheetController = UIAlertController()let cancelAction = UIAlertAction(title: "取消", style: UIAlertAction.Style.cancel) { (alertAction) -> Void inprint("Tap 取消 Button")}let takingPicturesAction = UIAlertAction(title: "拍照", style: UIAlertAction.Style.destructive) { (alertAction) -> Void inself.getImageGo(type: 1)}let photoAlbumAction = UIAlertAction(title: "相册", style: UIAlertAction.Style.default) { (alertAction) -> Void inself.getImageGo(type: 2)}actionSheetController.addAction(cancelAction)actionSheetController.addAction(takingPicturesAction)actionSheetController.addAction(photoAlbumAction)//iPad设备浮动层设置锚点actionSheetController.popoverPresentationController?.sourceView = sender as? UIView//显示self.present(actionSheetController, animated: true, completion: nil)}override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view.}//去拍照或者去相册选择图片func getImageGo(type:Int){takingPicture =  UIImagePickerController.init()if(type==1){takingPicture.sourceType = .camera//拍照时是否显示工具栏//takingPicture.showsCameraControls = true}else if(type==2){takingPicture.sourceType = .photoLibrary}//是否截取,设置为true在获取图片后可以将其截取成正方形takingPicture.allowsEditing = falsetakingPicture.delegate = selfpresent(takingPicture, animated: true, completion: nil)}//拍照或是相册选择返回的图片func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {takingPicture.dismiss(animated: true, completion: nil)if(takingPicture.allowsEditing == false){//原图image.image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage}else{//截图image.image = info[UIImagePickerController.InfoKey.editedImage] as? UIImage}}}

五、拍照界面改成中文

完成上面的步骤就能够实现简单的通过拍照、相册获取图片了

但是,我们会发现,选择拍照时,上面的操作步骤文字都是英文的,我们可以把它改成中文

如下图所示,选中项目 -> PEOJECT -> Info -> Localization

点击 + 将 Chinese,Simplified 添加到 Localization 重新运行项目就可以看到拍照界面都是中文了

IOS Swift 5.0 获取图片-相册、拍照相关推荐

  1. IOS Swift 5.0 获取通讯录列表拨打电话

    一.创建项目 这个很简单,就不多说了 二.实现 UITableView 以及相关布局 也不复杂,不会的可以参考一下我的另一篇,都是最基础的 三.添加权限 获取通讯录数据需要添加请求访问通讯录的权限,第 ...

  2. php拍照从手机相册中选择,Android获取图片:拍照和从相册中选择

    概述 在Android开发中获取图片主要包括如下两种方式: 打开相机拍照 从图库中选择图片 一.打开相机拍照 打开相机拍照主要包括如下几个部分: 权限申请 打开摄像头 拍照后传回数据处理 1. 权限申 ...

  3. iOS Swift处理点9图片

    一.什么是点9图? 点9图是Android开发中用到的一种特殊格式的图片,后缀名是".9.png"的图片.左上两条线控制可拉伸区域(未画线表示不可拉伸),右下两条线控制内容显示区( ...

  4. IOS 开发中相机获取图片 不同方向的相机获取不同的图片的实现 ||图片的从新绘图

    这几天在做头像的时候,发现直接拍照获取图片在截取图像的时候不正确,后来发现获取的image 没有设置相机的拍照方向  于是在网上找到了这个方法 + (UIImage *)image:(UIImage  ...

  5. iOS swift 位置 定位 获取海拔

    我自己的另外一篇博客(推荐):ios swift 获取手机位置 定位 Swift - 使用CoreLocation实现定位(经纬度.海拔.速度.距离等)

  6. Swift4.0 从相册中获取图片和拍照

    第一步 添加协议 UIImagePickerControllerDelegate,UINavigationControllerDelegate   第二步 添加选择方式 let sexActionSh ...

  7. android 6.0获取图片地址,Android应用开发Android 保存图片到系统相册(三星6.0有效)...

    Android   保存图片到系统相册(三星6.0有效).今天要做一个保存图片到系统图库的功能,自身能力较浅,所以只能搜索了但发现网上的方法有几处bug,所以自己总结一下防止以后忘掉也想和大家分享一下 ...

  8. IOS Swift 5.0 Alamofire的简单使用

    Alamofire 可以通过 CocoaPods 导入,也可以下载导入,这里是初学, CocoaPods 还不太熟悉,就直接下载导入使用了 1.Alamofire 下载 2.Alamofire 导入 ...

  9. android相册路径地址,Android拍照和相册获取图片路径

    /** *调用系统相机 */ public voidstartCamera() { Intent intent =newIntent(MediaStore.ACTION_IMAGE_CAPTURE); ...

最新文章

  1. Java(CallableStatement)调用Oracle存储过程返回结果集(ResultSet)
  2. 自绘制View---------左右滑动刻度调频View
  3. 致首次创业者:如果做到了这三点,想不成功都难(转)
  4. c js php比较字符串,Php 比较字符串相像度
  5. ddr老化测试_手把手教你评估和测试固态存储【深度】
  6. python构建知识库_Python学习知识库
  7. [cloud][sdn] neutron了解
  8. 1.PHP 扩展开始以及内核应用(1) --- PHP 的生命周期
  9. MIMO-OTFS in High-Doppler Fading Channels:Signal Detection and Channel Estimation(5)
  10. directx修复工具win7_win7蓝屏该怎么解决图文教程
  11. HCK哈士奇x可口可乐联名潮酷冰吧,你还没入手吗?
  12. Oracle Instead of Trigger的用法
  13. android 定位 指南针,Android 实现指南针效果
  14. 对接有道翻译api中英翻译软件
  15. html单元格斜线分割,在网页中画单元格斜线分割
  16. 输入大小写混合的字母,大写转小写,小写转大写
  17. 调查问卷的反向计分题数据如何录入?
  18. 使用Tableau对综测成绩进行可视化数据分析
  19. 信息系统项目管理师 - 项目立项管理
  20. easypoi基本使用

热门文章

  1. Python之百度翻译
  2. 利用RTVS实现html5无插件播放rtsp、rtmp
  3. 整数因子分解的Pollard p-1方法
  4. 奇酷360 8692-A008692-M02卡刷线刷教程ROM固件包下载
  5. 维多利亚的秘密微信推广广告模仿-刮刮卡
  6. 人工智能产品经理的新起点
  7. python爬虫入门案例day01:拼多多
  8. 计算流体力学(CFD)学习小记1 ANSYS Icepak入门
  9. 如何设计网站的登录和注册功能
  10. 谷歌浏览器Chrome的扩展程序安装目录