Конвертируйте UIImage в строку Base64 длиной менее 100 символов.Swift 4.2 |IOS - PullRequest
0 голосов
/ 07 мая 2019

Я хочу закодировать объект UIImage в Base64 String.Как правило, я получаю довольно большую строку, и процесс также занимает много времени.

func convertImageToBase64String () -> String {
    guard let imageData: Data = UIImage.jpegData()
    let imgString = imageData.base64EncodedString(options: .init(rawValue: 0))
    return imgString
}

class func convertBase64StringToImage (imageBase64String: String) -> UIImage? {
    guard let imageData = Data.init(base64Encoded: imageBase64String, options: .init(rawValue: 0)) else { return nil }
    let image = UIImage(data: imageData)
    return image
}

Пожалуйста, помогите мне здесь.

1 Ответ

1 голос
/ 07 мая 2019

То, что вы хотите, не возможно. Данные JPEG уже являются сжатой формой изображения. А когда вы преобразуете данные в кодировку base64, результатом будет строка, которая будет на 33% больше исходных данных.

Таким образом, единственный способ получить закодированное в base64 строковое представление изображения JPEG, длина которого не превышает 100 символов, - это убедиться, что исходный JPEG имеет размер менее 66 байт. Я уверен, что даже JPEG размером 1x1 пиксель будет иметь размер более 66 байт.

Если JPEG является полной фотографией, сделанной на устройстве iOS, результирующие данные будут иметь размер в несколько мегабайт. Это требует времени для отправки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...