#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%. Если нет: магия вуду.