web-dev-qa-db-fra.com

Conversion de l'image en chaîne BASE64 en format rapide

J'essaie de convertir l'image qui est sélectionnée par l'utilisateur à partir de ses photos ou de l'option Prendre à nouveau de l'appareil photo. Je suis capable de convertir l'image en chaîne base64 mais le problème est que cela prend trop de temps et affiche une longue chaîne infinie 

Voici la sortie de String que je reçois

 enter image description here

voici mon code:

// Image picker from Gallery
    func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {
        imagePicker.dismissViewControllerAnimated(true, completion: nil)
        profileImage.image = image

    }

    // Image Picker from Camera

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        imagePicker.dismissViewControllerAnimated(true, completion: nil)
        profileImage.image = info[UIImagePickerControllerOriginalImage] as? UIImage

        addPicBtn.setImage(nil, forState: .Normal)

        let imageData:NSData = UIImagePNGRepresentation(profileImage.image!)!
        let imageStr = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
        print(imageStr)


    }
5

En fait, il ne faut pas du temps pour convertir (très moins de temps) pour imprimer, cela prendra plus de temps alors ne l'imprimez pas .... 

9
Sagar Snehi

Vous pouvez appliquer ce code  

let imageData: Data? = UIImageJPEGRepresentation(getImage(), 0.4)
let imageStr = imageData?.base64EncodedString(options: .lineLength64Characters) ?? ""
print(strBase64)
8
Yogendra Girase

Assurez-vous que votre extension d'image en premier.

// .png 

    guard let imageData = UIImagePNGRepresentation(UIImage) else {
        return ""
    }

// .JPEG

   guard let imageData = UIImageJPEGRepresentation(UIImage, 1) else {
                return ""
    }

// BASE 64

  imageData.base64EncodedString()
1
Arjun Patel