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
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)
}
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 ....
Vous pouvez appliquer ce code
let imageData: Data? = UIImageJPEGRepresentation(getImage(), 0.4)
let imageStr = imageData?.base64EncodedString(options: .lineLength64Characters) ?? ""
print(strBase64)
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()