【问题标题】:How can I store an Image to Realm database?如何将图像存储到 Realm 数据库?
【发布时间】:2016-10-05 06:31:44
【问题描述】:

我正在使用 Swift 2.2 编写一个 iOS 应用程序,我想根据调整选取的图像大小将帐户的个人资料图片本地保存在 Realm 数据库中。我用谷歌搜索,也看到了here,但不太清楚。如果图像尺寸较小或数量较少,或者我有更多图像或较大尺寸,该怎么办?

另一个困惑是我将使用 NSData 还是 NSString ? 我的模型是

class IndividualContact: Object {

    dynamic var photoDataString = ""
    var photoData: NSData? = nil
    dynamic var isPhotoAvailable = false
}

我已经从图库中挑选了图片

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

        if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

            imageView.contentMode = .ScaleAspectFit
            imageView.image = pickedImage 
        }

现在如何根据将其调整为(120 * 110 大小)来存储它?

【问题讨论】:

  • 你有什么问题?调整图像大小,将图像存储在数据库中
  • 我建议将图片复制到“Doc​​uments”目录并保存路径。
  • 不建议直接将图片存储在realm上,您应该将图片存储在手机的文档目录中,并将图片名称/路径存储在Realm上
  • 如果我没记错的话,你可以找到答案here
  • 我不需要从网上下载。我需要调整它的大小并将其存储到领域数据库。我也想知道“如果我有更多图片或大尺寸”

标签: ios swift swift2 realm


【解决方案1】:

图片不能直接存入Realm,转换成NSData后保存。

如果您的图像是JPEG 类型,则使用,

let data = NSData(data: UIImageJPEGRepresentation(yourImage,0.9))

如果您的图像是PNG 类型,则使用,

let data = NSData(data: UIImagePNGRepresentation(yourImage))

然后在领域中写你的文件,

let realm = Realm()
realm.write{
    realm.add(data)
}

希望这会有所帮助。

【讨论】:

  • 如果我不知道这是什么类型的图像,我会怎么做?
  • 可以直接给出文件路径或者url来获取NSData
  • 我是新人,请简单解释一下
  • @IrtizaKhanNiloy 如果我们想存储图像,我们必须将该图像转换为数据,然后我们才能存储该图像,因此将图像转换为数据有很多方法,比如如果你想存储来自 url 的图像然后你可以使用 let data = NSData(contentsOfURL:NSURL(string: "your image url"))
  • 兄弟,我不需要url,我需要存储来自画廊的图像。
【解决方案2】:

你不能直接将image保存到Realm中,转换成Data和 存储它。

将您的image 转换为Data

let data = NSData(data: UIImageJPEGRepresentation(yourImage,0.9))

将数据转换为PNG 格式(如果有)

let imgPNG = UIImage.imageWithData(data)

PNG image 转换为Data

let dataPNGImg = NSData(data: UIImagePNGRepresentation(imgPNG))

将您的数据存储到 Realm DB...

  let realm = Realm()
    realm.write{
        realm.add(dataPNGImg)
    }

在数据库中存储图像不是一个好主意。它会 增加数据库负载和处理时间。您可以存储图像 路径而不是图像。

【讨论】:

  • 你好,如何保持这些数据和用户之间的引用?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-22
  • 2010-12-27
  • 1970-01-01
  • 2017-05-31
  • 2020-12-18
  • 2012-06-04
  • 1970-01-01
相关资源
最近更新 更多