如何将图像存储到Realm数据库?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将图像存储到Realm数据库?相关的知识,希望对你有一定的参考价值。
我正在使用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大小)来存储它?
答案
你不能直接将图像保存到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)
}
希望这可以帮助。
另一答案
你无法直接将
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)
}
将图像存储在数据库中不是一个好主意。它会增加数据库负载和处理时间。您可以存储图像路径而不是图像。
以上是关于如何将图像存储到Realm数据库?的主要内容,如果未能解决你的问题,请参考以下文章
将文件路径保存到 realm.io 并使用 AlamofireImage 分配图像