使用 Swift 捕获 iOS 相机图片
在 Swift 中捕获相机图片,我们可以使用 AVFoundation,它是 iOS SDK 中的一个框架,但我们应该尽量避免使用它,除非我们的相机应用程序需要大量自定义功能。在本例中,我们只捕获相机图片并在视图上显示。在本例中,我们将使用图像选择器而不是 AVFoundation。
首先,创建一个项目并在其故事板中的视图控制器上添加一个图像视图。在类中创建出口。现在,在 ViewController 类内部,使其符合以下协议:
class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate
之后,创建一个 objc 函数。
@objc func openCamera(){
}现在,在你的 View did load 中,向你的视图控制器添加一个轻触手势识别器,当屏幕被轻触时,它应该调用 openCamera 函数。
override func viewDidLoad() {
super.viewDidLoad()
let gesture = UITapGestureRecognizer(target: self, action: #selector(openCamera))
self.view.addGestureRecognizer(gesture)
}现在,在函数中添加以下代码行。
@objc func openCamera() {
let imgPicker = UIImagePickerController()
imgPicker.delegate = self
imgPicker.sourceType = .camera
imgPicker.allowsEditing = false
imgPicker.showsCameraControls = true
self.present(imgPicker, animated: true, completion: nil)
}完成以上步骤后,现在我们将实现 UIImagePickerControllerDelegate 的 didFinishPickingMediaWithInfo 方法,并在该方法内部,我们将获取用户从相机捕获的图片。
func imagePickerController(_ picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey :
Any]) {
if let img = info[UIImagePickerController.InfoKey.editedImage] as?
UIImage {
self.imgV.image = img
self.dismiss(animated: true, completion: nil)
}
else {
print("error")
}
}
}现在,我们需要在我们的 info.plist 中添加相机使用描述键,并说明我们的应用程序为什么想要使用相机。当我们在 iPhone 上运行它并捕获图片时,会产生以下结果。另外,请注意,此应用程序无法在模拟器上运行。

广告
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP