[英]How to save photo only when taken with camera?
我有一個帶有UIImagePickerControllerDelegate和UINavigationControllerDelegate的視圖控制器來選擇照片。
但是,當我選擇照片后,它會自動將同一張照片保存在我的相冊中。
我想我在代碼中寫了這個函數
UIImageWriteToSavedPhotosAlbum(photoImage!, nil, nil, nil)
因此,我檢查源類型等於相機,然后保存照片並在相冊中選擇照片,而不是再次保存同一照片。
但這是行不通的。 發生了什么?
它還會自動保存同一張照片。
我不想保存同一張照片嗎?
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let uuid = NSUUID().uuidString
let imageName:String = uuid + ".jpg"
let documentsPath = NSHomeDirectory().appending("/Documents/\(image)/")
let imagePath = documentsPath.appending(imageName)
let imageUrl = URL(fileURLWithPath: imagePath)
print("imageUrl is here:\(imageUrl)")
photoImage = info[UIImagePickerControllerOriginalImage] as? UIImage
if (UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera)) {
photoImage = info[UIImagePickerControllerOriginalImage] as? UIImage
// this doesn't work!!!!
//UIImageWriteToSavedPhotosAlbum(photoImage!, nil, nil, nil)
}
//save image to local Documents
let imageData:Data = UIImageJPEGRepresentation(photoImage!, 0.05)!
do {
try imageData.write(to: imageUrl,options: .atomic)
} catch let error {
print(error)
}
showLoading()
hideLoading {
//I have func upload image to server
self.tableView.reloadData()
self.dismiss(animated: true, completion: nil)
}
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
self.dismiss(animated: true, completion: nil)
}
您不是在檢查圖像選擇器控制器的信號源類型,而是在檢查相機是否一般可用。
更改此:
if (UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera)) {
至:
if picker.sourceType == .camera {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.