IOS Swift 5.0 获取图片-相册、拍照
一、创建项目
这个很简单,创建好了看下面的就行了
二、添加权限
拍照和获取相册都需要先设置权限
三、布局
实现一个简单的布局,同一个界面,一个按钮 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 获取图片-相册、拍照相关推荐
- IOS Swift 5.0 获取通讯录列表拨打电话
一.创建项目 这个很简单,就不多说了 二.实现 UITableView 以及相关布局 也不复杂,不会的可以参考一下我的另一篇,都是最基础的 三.添加权限 获取通讯录数据需要添加请求访问通讯录的权限,第 ...
- php拍照从手机相册中选择,Android获取图片:拍照和从相册中选择
概述 在Android开发中获取图片主要包括如下两种方式: 打开相机拍照 从图库中选择图片 一.打开相机拍照 打开相机拍照主要包括如下几个部分: 权限申请 打开摄像头 拍照后传回数据处理 1. 权限申 ...
- iOS Swift处理点9图片
一.什么是点9图? 点9图是Android开发中用到的一种特殊格式的图片,后缀名是".9.png"的图片.左上两条线控制可拉伸区域(未画线表示不可拉伸),右下两条线控制内容显示区( ...
- IOS 开发中相机获取图片 不同方向的相机获取不同的图片的实现 ||图片的从新绘图
这几天在做头像的时候,发现直接拍照获取图片在截取图像的时候不正确,后来发现获取的image 没有设置相机的拍照方向 于是在网上找到了这个方法 + (UIImage *)image:(UIImage ...
- iOS swift 位置 定位 获取海拔
我自己的另外一篇博客(推荐):ios swift 获取手机位置 定位 Swift - 使用CoreLocation实现定位(经纬度.海拔.速度.距离等)
- Swift4.0 从相册中获取图片和拍照
第一步 添加协议 UIImagePickerControllerDelegate,UINavigationControllerDelegate 第二步 添加选择方式 let sexActionSh ...
- android 6.0获取图片地址,Android应用开发Android 保存图片到系统相册(三星6.0有效)...
Android 保存图片到系统相册(三星6.0有效).今天要做一个保存图片到系统图库的功能,自身能力较浅,所以只能搜索了但发现网上的方法有几处bug,所以自己总结一下防止以后忘掉也想和大家分享一下 ...
- IOS Swift 5.0 Alamofire的简单使用
Alamofire 可以通过 CocoaPods 导入,也可以下载导入,这里是初学, CocoaPods 还不太熟悉,就直接下载导入使用了 1.Alamofire 下载 2.Alamofire 导入 ...
- android相册路径地址,Android拍照和相册获取图片路径
/** *调用系统相机 */ public voidstartCamera() { Intent intent =newIntent(MediaStore.ACTION_IMAGE_CAPTURE); ...
最新文章
- Java(CallableStatement)调用Oracle存储过程返回结果集(ResultSet)
- 自绘制View---------左右滑动刻度调频View
- 致首次创业者:如果做到了这三点,想不成功都难(转)
- c js php比较字符串,Php 比较字符串相像度
- ddr老化测试_手把手教你评估和测试固态存储【深度】
- python构建知识库_Python学习知识库
- [cloud][sdn] neutron了解
- 1.PHP 扩展开始以及内核应用(1) --- PHP 的生命周期
- MIMO-OTFS in High-Doppler Fading Channels:Signal Detection and Channel Estimation(5)
- directx修复工具win7_win7蓝屏该怎么解决图文教程
- HCK哈士奇x可口可乐联名潮酷冰吧,你还没入手吗?
- Oracle Instead of Trigger的用法
- android 定位 指南针,Android 实现指南针效果
- 对接有道翻译api中英翻译软件
- html单元格斜线分割,在网页中画单元格斜线分割
- 输入大小写混合的字母,大写转小写,小写转大写
- 调查问卷的反向计分题数据如何录入?
- 使用Tableau对综测成绩进行可视化数据分析
- 信息系统项目管理师 - 项目立项管理
- easypoi基本使用