gpt4 book ai didi

swift - 将 ARReferenceImage 从阵列上传到 Firebase 存储

转载 作者:行者123 更新时间:2023-11-30 10:52:46 27 4
gpt4 key购买 nike

我正在开发一个应用程序,其中数据库中有一组ARReferenceImages,供用户下载和使用。这些 ARReferenceImages 由用户创建。

我已经对用户创建的 ARReferenceImages 之前的所有内容进行了编码,这些内容被放入数组中,但这就是我完全困惑的地方。

UIImages 上传到存储似乎很容易,但是当涉及 ARReferenceImages 时,我根本找不到任何地方告诉我该怎么做。

我尝试在手机上获取文件的路径,但这似乎还不够,或者说是正确的。所以我想知道是否应该将图像上传为 UIImages 并单独保存每个图像的宽度,然后在下载到手机时将它们转换为 ARReferenceImages 。但如果我可以按原样上传和下载实际的 ARReferenceImage,这似乎很愚蠢。

有人能指出我正确的方向吗?

我添加的代码示例只是为了展示我想要做什么。 uploadData let 会抛出错误,因为它应该是 Data() 类型,而不是 URL 类型。但我就是不知道该怎么做。

提前谢谢您。

`
for referenceImage in referenceImagesArray {

let urlPath = Bundle.main.url(forResource: referenceImage.name,
withExtension: nil)

let thisGameStorageRef = Storage.storage().reference().child(folderRef).child(referenceImage.name ?? "")

// Get image data
if let uploadData = urlPath {

// Upload image to Firebase Cloud Storage
thisGameStorageRef.putData(uploadData, metadata: nil) {
(metadata, error) in
guard error == nil else {`

最佳答案

我已经浏览了几个小时,阅读了 Firebase 文档、swift 文档以及阅读和查看了多个教程,并得出了以下结论。

看来我想做的事情非常困难,或者可能是一个坏主意,因为即使它可能有效,它也可能会破坏应用程序,因为 ARReferenceImages 对于我尝试做的方式来说可能太重了。所以我要使用的解决方案是:

  1. 使用相机拍摄图像,同时添加图像的真实世界宽度。这些将存储为 UIImages 和 CGFloats,其名称相互引用。
  2. 然后,我将分别保存 UIImage 和 CGFloats,其中 UIImage 保存在 Firebase 云存储中,CGFloat 保存在 Firebase 实时数据库中。
  3. 当我需要将它们用作 ARReferenceImage 时,我将检索图像和宽度并将它们转换为 ARReferenceImage,我可以将其放入数组中并与我的 AR 应用程序一起使用。

这需要几个步骤,但由于无论如何我都必须将图像转换为 ARReferenceImage,我可以将这段代码从我的应用程序的上传部分移动到下载部分,所以我不会得到更多的实际行代码。

大部分代码并不困难,但对于主要问题,我将添加我编写的用于从数组中保存 UIImages 的代码:

`var counter = 0
for uiImage in uiImagesArray {
let imageName = "image\(uiImagesArray[counter])"
saveImage(imageName: imageName, theImage: uiImage, storageRef:
imagesStorageRef)
counter = counter + 1
}`

`func saveImage(imageName: String, theImage: UIImage, storageRef:
StorageReference){
//get the PNG data for image
let imageData = theImage.pngData()
//create reference for storage
let thisStorageRef = storageRef.child(gameTitle + "/" + imageName)
//upload it to Firebase
thisStorageRef.putData(imageData!, metadata: nil)
}`

如果有人想查看我的更多代码,对于其中的其他部分,只需发表评论,我就会发布它。

关于swift - 将 ARReferenceImage 从阵列上传到 Firebase 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54286653/

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