问题
I am trying to convert the Image which is picked by user either from his Photos or Take New from Camera. I am able to convert the image into base64 string but the problem is that it takes too much time and prints a long infinite string
Here is the output of String which i am getting
here is my 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)
}
回答1:
Actually it is not taking time to convert(very less time) for printing it will take more time so don't print it....
回答2:
You can apply this code
let imageData: Data? = UIImageJPEGRepresentation(getImage(), 0.4)
let imageStr = imageData?.base64EncodedString(options: .lineLength64Characters) ?? ""
print(strBase64)
回答3:
Swift 4 version. This simple func worked well for me. Confirmed decoded image back using this: https://codebeautify.org/base64-to-image-converter Hope this helps someone.
public static func convertImageToBase64String(image : UIImage ) -> String
{
let strBase64 = image.pngData()?.base64EncodedString()
return strBase64!
}
回答4:
Make sure your image extension first.
// .png
guard let imageData = UIImagePNGRepresentation(UIImage) else {
return ""
}
// .JPEG
guard let imageData = UIImageJPEGRepresentation(UIImage, 1) else {
return ""
}
// BASE 64
imageData.base64EncodedString()
回答5:
let imageData: Data? = UIImageJPEGRepresentation(YourImage, 0.4)
let imageStr = imageData?.base64EncodedString(options: .lineLength64Characters) ?? ""
print(imageStr,"imageString")
来源:https://stackoverflow.com/questions/40989079/converting-image-to-base64-string-in-swift