使用 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