почему размер изображения из UIImagePickerController больше исходного размера? - PullRequest
0 голосов
/ 14 июля 2020

Я пытался прочитать аналогичную проблему в здесь , но это не решило мою проблему, потому что решение в здесь устарело.

поэтому у меня изображение, размером всего 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)
        
       
        
        
    }

могу ли я получить тот же размер, что и исходное изображение?

...