[英]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.