Я пытался прочитать аналогичную проблему в здесь , но это не решило мою проблему, потому что решение в здесь устарело.
поэтому у меня изображение, размером всего 57 Кб в галерее. Я хочу, чтобы пользователь выбрал изображение из своей галереи, но проблема в том, что изображение, выбранное из галереи, становится намного больше, чем исходное изображение на диске, с 57 КБ до 560 КБ. вот код, который я использую
func showChooseImageFromGalleryAlert() {
let imagePickerController = UIImagePickerController()
imagePickerController.delegate = self
imagePickerController.allowsEditing = false
let actionSheet = UIAlertController(title: "Choose Poster", message: "Choose your best poster", preferredStyle: .actionSheet)
let actionPhotoLibrary = UIAlertAction(title: "Choose From Gallery gallery", style: .default) { (action) in
imagePickerController.sourceType = .photoLibrary
imagePickerController.modalPresentationStyle = .fullScreen
self.present(imagePickerController, animated: true, completion: nil)
}
let actionCancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
actionSheet.addAction(actionPhotoLibrary)
actionSheet.addAction(actionCancel)
actionSheet.view.tintColor = UIColor(named: ColorName.BRAND_COLOR)
self.present(actionSheet, animated: true, completion: nil)
}
, и результат здесь
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
guard let image = info[.originalImage] as? UIImage else {
picker.dismiss(animated: true, completion: nil)
return
}
print("check size in Kb: \(getImageSizeInkB(image: image)!) Kb")
// the image is far larger than original image in here
// it becomes 560 Kb. 10 times bigger
picker.dismiss(animated: true, completion: nil)
}
могу ли я получить тот же размер, что и исходное изображение?