【问题标题】:Uploading multiple Images to Parse将多个图像上传到 Parse
【发布时间】:2016-02-24 16:51:19
【问题描述】:

我想知道是否可以上传 10 张图像进行解析,然后能够在显示用户名的 TableView 中显示它们。

所以基本上当我从 parse 下载它们时,我猜需要有一些东西将这些图像链接到同一个用户或 1 个单独的帖子......

不确定这是否可能,但我阅读了这两个问题,我认为您可以!

How do I store multiple pictures to a single column in Parse?

Storing images from [UIImage] array to Parse

如果有人明白我的意思,我会很想得到你的帮助!

最好的问候。

【问题讨论】:

  • 我明白了,你有一个用户列表,每个用户都有自己的图像?
  • @BenSullivan 如果用户上传 10 张图片,我想将这 10 张图片显示在 1 个单元格中,而不是 10 个单独的单元格中
  • 好的,解决方案可能会很冗长,但基本上你会希望在每个 tableView 单元格中嵌入一个水平滚动的 collectionView 并将图像填充到其中。您是将用户和他们的图像存储到一个对象中还是只是数组中?
  • 我的问题是没有显示它们,我还没有到那里!目前我只想上传 10 张图片,并将它们都连接到同一个帖子。检查我在问题中添加的链接,它们可能更好地解释了我的追求
  • 而不是将帖子连接到用户,如果每个用户最多有 10 张照片,那么您是否可以不将图像数组作为列添加到 Parse User 类中?如果你这样做了,那么你可以只使用 PFUser 查询来下载每个用户的用户名和相关图像。

标签: swift image parse-platform


【解决方案1】:

如前所述,您可以将图像数组添加到 User 类的列中,下面的代码允许您创建新用户,并将获取图像数组并根据需要创建尽可能多的列。它们将被命名为“imageArray0”、“imageArray1”等等。下次您使用图像创建用户时,它们将自动添加到 Parse 中的相应列中。

更新

添加图片转换:

           let user = PFUser()
           user.username = chosenUsername

            for i in imageArray.indices {
              let imageData = imageArray[i].mediumQualityJPEGNSData
              let imageFile = PFFile(name: "image.JPEG", data: imageData)
                user["imageArray\(i)"] = imageFile
             }

                user.signUpInBackgroundWithBlock({
                    success, error in

                    if error == nil {

                    } else {

                    }
                })

我还使用此扩展程序轻松地将图像转换为各种质量:

extension UIImage {
var uncompressedPNGData: NSData      { return     UIImagePNGRepresentation(self)!        }
var highestQualityJPEGNSData: NSData { return UIImageJPEGRepresentation(self, 1.0)!  }
var highQualityJPEGNSData: NSData    { return UIImageJPEGRepresentation(self, 0.75)! }
var mediumQualityJPEGNSData: NSData  { return UIImageJPEGRepresentation(self, 0.5)!  }
var lowQualityJPEGNSData: NSData     { return UIImageJPEGRepresentation(self, 0.25)! }
var lowestQualityJPEGNSData:NSData   { return
UIImageJPEGRepresentation(self, 0.0)!  }
}

【讨论】:

  • 这很快! :) 好的,所以我使用 pod DKImagePickerController 来选择多个图像,然后将它们显示在我的 VC 上。这是我的 cellForItemAtIndexPath 的屏幕截图,所以你可以看到它是怎样的i.stack.imgur.com/BdUoN.png我不需要在上传之前转换图像吗?
  • Asset 是 pod 放置图像的数组 [DKAsset]。然后我显示它们,我还添加了数组:images = [UIImage]() 以尝试将图像从 Asset 移动到那个(图像)中!令人困惑...但我不确定我是否正确地这样做了!
  • 我已经通过转换更新了我的答案,我不太确定是否可以在没有看到应用程序的情况下帮助解决您遇到的其他问题
  • 好的,所以我设置了它i.stack.imgur.com/e7vXq.png 它开始工作了。但我刚刚检查了解析,第一张图片显示了所有列..!
  • 它上传的每张照片都会创建一个新行!
【解决方案2】:

我不确定这是否可行,但出于两个原因是不必要的:

  1. 要检索图像数组时的查询速度
  2. 您可以将每张图像保存在同一行下,但分别保存在图像 x 编号下

最后你不能保存 UIImage 数组,它必须是 NSData 数组,所以使用

将 UIImages 转换为 NSData
let image1 : NSData = UIImagePNGRepresentation([UIImage][0]!)!
let image2 : NSData = UIImagePNGRepresentation([UIImage][1]!)!
let image3 : NSData = UIImagePNGRepresentation([UIImage][2]!)!
let imageArray : [NSData] = [image1, image2, image3]

【讨论】:

  • 您好,感谢您的回答!我的问题只是我不明白如何在解析中将多个图像保存为 1 列中的数组...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-06
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
相关资源
最近更新 更多