gpt4 book ai didi

ios - 将图像上传到 Firebase 存储

转载 作者:行者123 更新时间:2023-11-30 13:03:58 24 4
gpt4 key购买 nike

我使用这个简单的代码将图像上传到 Firebase 存储。

let imageName = UUID().uuidString
let storageRef = FIRStorage.storage().reference().child("Devices_Images").child("\(imageName).png")

// let metaData = FIRStorageMetadata()
// metaData.contentType = "image/png"

if let uploadData = UIImagePNGRepresentation(self.ImageView.image!) {
storageRef.put(uploadData, metadata: nil, completion: { (data, error) in
if error != nil {
print(error)

} else {
print("Image Uploaded Succesfully")
let profileImageUrl = data?.downloadURL()?.absoluteString
}

我不断收到此错误:

[Generic] Creating an image format with an unknown type is an error

其实转换和图片类型都是png!所以为什么我一直收到这个错误!

图像是从alpum或相机上传的,如下所示:

 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let theInfo:NSDictionary = info as NSDictionary
let img:UIImage = theInfo.object(forKey: UIImagePickerControllerOriginalImage) as! UIImage
ImageView.image = img
self.dismiss(animated: true, completion: nil)
}

@IBAction func AddPictureBtnAction(_ sender: AnyObject) {
// addPictureBtnAtion.enabled = false
let alertController : UIAlertController = UIAlertController(title: "أضف جهازًا", message: "التقط صورة من الكاميرا أو اختر من الألبوم", preferredStyle: .actionSheet)

let cameraAction : UIAlertAction = UIAlertAction(title: "صورة من الكاميرا", style: .default, handler: {(cameraAction) in
print("camera Selected...")

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) == true {

self.imagePicker.sourceType = .camera
self.present()

}else{
self.present(self.showAlert("عذرًا", Message: "الكاميرا ليست متاحة في هذا الجهاز أو تم منع الوصول لها!"), animated: true, completion: nil)

}

})

let libraryAction : UIAlertAction = UIAlertAction(title: "صورة من الألبوم", style: .default, handler: {(libraryAction) in

print("Photo library selected....")

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) == true {

self.imagePicker.sourceType = .photoLibrary
self.present()

}else{

self.present(self.showAlert("عذرًا", Message: "ألبوم الصور ليس متاحًا في هذا الجهاز أو تم منع الوصول له!"), animated: true, completion: nil)
}
})

let cancelAction : UIAlertAction = UIAlertAction(title: "إلغاء", style: .cancel , handler: {(cancelActn) in
print("Cancel action was pressed")
})

alertController.addAction(cameraAction)

alertController.addAction(libraryAction)

alertController.addAction(cancelAction)

alertController.popoverPresentationController?.sourceView = view
alertController.popoverPresentationController?.sourceRect = view.frame

self.present(alertController, animated: true, completion: nil)
}


func present(){
self.present(imagePicker, animated: true, completion: nil)
}


/* func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
print("info of the pic reached :\(info) ")
self.imagePicker.dismissViewControllerAnimated(true, completion: nil)

} */

//Show Alert
func showAlert(_ Title : String!, Message : String!) -> UIAlertController {

let alertController : UIAlertController = UIAlertController(title: Title, message: Message, preferredStyle: .alert)
let okAction : UIAlertAction = UIAlertAction(title: "Ok", style: .default) { (alert) in
print("User pressed ok function")

}
alertController.addAction(okAction)
alertController.popoverPresentationController?.sourceView = view
alertController.popoverPresentationController?.sourceRect = view.frame
return alertController
}

最佳答案

在 imagePicker 方法的参数中添加“_”。

func imagePickerController(_ picker: UIImagePickerController ...

然后上传:-

   //if let uploadData = UIImagePNGRepresentation(UIImage(cgImage: self.imageView.image! as! CGImage, scale: 1.0, orientation: .up)) as? NSData {
if let uploadData = UIImagePNGRepresentation(self.ImageView.image!) as? NSData {



storageRef.put(uploadData!, metadata: nil, completion: { (metadata, error) in
if error != nil {
print(error)

} else {
print("Image Uploaded Succesfully")
let profileImageUrl = data?.downloadURL()?.absoluteString
}
})
}

关于ios - 将图像上传到 Firebase 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39605775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com