Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I store an Image to Realm database?

I'm writing an iOS application using Swift 2.2 and I want to save profile picture of an account locally in a Realm database according to resize the picked image. I googled and also saw here but not clear well. If images are small in size or less in numbers or if I have more images or large size what can be done?

another confusion is what I will use either NSData or NSString ? my model is

class IndividualContact: Object {

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

and I already picked image from gallery

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

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

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

now how can I store it according to resize it as (120*110 size)?

like image 433
KhanShaheb Avatar asked Jan 05 '23 06:01

KhanShaheb


1 Answers

You can not save directly image into Realm, convert it into NSData and the store it.

if your image is of type JPEG then use,

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

and if your image is of PNG type then use,

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

after that write you file in realm like,

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

Hope this helps.

like image 194
Sachin Amrale Avatar answered Jan 13 '23 08:01

Sachin Amrale