[英]How to display 'Camera Roll' directly using ImagePickerController
[英]How to get filename from camera using imagePickerController in Swift
我是 Swift 的新手,使用相机时无法获取文件名。 我的代码是这样的
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
if let url = info[UIImagePickerController.InfoKey.imageURL] as? URL {
self.fileName = url.lastPathComponent
self.ImageFormat = url.pathExtension
let fullNameArr = fileName.components(separatedBy: ".")
let firstName = fullNameArr[0] //First
ImagePathforServer = firstName
}
print(self.fileName)
print(self.ImageFormat)
imagePicker.dismiss(animated: true, completion: nil)
DispatchQueue.global(qos: .background).async {
let base64Str = "\(self.convertImageToBase64(image: image))"
self.base64forImageUpload = base64Str
}
} else {
print("There was an error picking the image")
}
}
我可以从库中获取文件名,但不能从相机中获取。
从库中,图像保存在照片/磁盘中。 但是,当您从中拍摄照片时,它不会保存在任何地方,直到您将其保存在某个地方。 您可以将该图像保存到 Documents 文件夹以获取路径,也可以将其保存在照片中。
将图像保存在文档目录中的示例:
import Foundation
import UIKit
extension UIImage {
func saveToDocuments(filename:String) {
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsDirectory.appendingPathComponent(filename)
if let data = self.jpegData(compressionQuality: 1.0) {
do {
try data.write(to: fileURL)
} catch {
print("error saving file to documents:", error)
}
}
}
}
//从目录中获取图片
public static func loadImageFromDocumentDirectory(fileName: String) -> UIImage? {
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!;
let fileURL = documentsUrl.appendingPathComponent(fileName)
do {
let imageData = try Data(contentsOf: fileURL)
return UIImage(data: imageData)
} catch {}
return nil
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.