Размер изображения увеличивается после преобразования в данные

#ios #swift #uiimagepickercontroller #picker

Вопрос:

Я работаю над проектом swift. В этом случае у меня есть возможность загрузить изображение из галереи с помощью средства выбора изображений. У меня также есть условие, чтобы проверить, превышает ли количество выбранных изображений 5 МБ. В данном случае, когда я выбрал изображение размером 3,8 МБ и загрузил его. Количество данных изображения составляет 8095271, что составляет 8 МБ. Я прикрепил код ниже:

 func getImagedata(_ image:UIImage) -gt; Data {  return image.jpegData(compressionQuality: 1.0) ?? Data() }   func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {  if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage{  picker.dismiss(animated: true) {  

} }}

Кто-нибудь может дать мне представление об этом? Мне нужен фактический размер изображения(МБ) без снижения качества.

Комментарии:

1. Непонятно, о чем вы спрашиваете. Фотографии, переведенные в UIImages, обычно имеют размер более 5 Мб. Ну и что? Вы тот, кто запрашивает фотографию в качестве изображения, а затем превращает ее в данные. Если вам нужны фактические данные, хранящиеся в галерее, почему бы не попросить об этом?

2. @matt, Фактический размер изображения составляет 3,8 МБ. когда я пытаюсь подсчитать количество с помощью вышеуказанной функции, количество составляет 8095271, что составляет 8 МБ. почему? Мне нужен реальный размер изображения.

3. данные jpeg сжаты, данные UIImage-нет.

4. Нет, фактический размер данных составляет 3,8 Мб. Размер изображения намного больше, и это то, с чего вы начинаете.

5. Когда вы загружаете, вы кодируете данные на основе base64? Если да: base64 увеличивает ваш размер по крайней мере на 133%. Если нет: магия вуду.