Всем привет! Есть необходимость перегонять фото аватара в формат base64 для отправки на сервер. Нашел 2 варианта
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
myPhoto.image = image
picker.dismiss(animated: true, completion: nil)
if myPhoto.image != nil {
if let userFotoImage = (myPhoto?.image) {
1 вапиант
if let data = UIImageJPEGRepresentation(userFotoImage, 0.5)?.base64EncodedData() {
let imageStr = data.base64EncodedString(options: .lineLength64Characters)
}
2 вариант
if let data = UIImagePNGRepresentation(userFotoImage) {
let strBase64 = data.base64EncodedString(options: .lineLength64Characters)
}
}
}
}
Тестирую на картинке размером 16 кб. В первом варианте длинна еще более менее, но сервер не хочет с ним работать.
Во втором более 5000 строк. Сервер нормально с ней работает.
Решил протестировать на размере 2 МБ. Симулятор Xcode задумался на несколько минут. Возможно ширина и высота картинки слишком большая
Что делать в такой ситуации? Может как то сжимать еще?