大佬教程收集整理的这篇文章主要介绍了如何在 Swift 中使用 imagePickerController 从相机获取文件名,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 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
}
以上是大佬教程为你收集整理的如何在 Swift 中使用 imagePickerController 从相机获取文件名全部内容,希望文章能够帮你解决如何在 Swift 中使用 imagePickerController 从相机获取文件名所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。