Ограничить пользователя в выборе изображения размером более 1 МБ из галереи или камеры с помощью Flutter

#flutter #dart

#flutter #dart

Вопрос:

Я хочу ограничить пользователя в выборе изображения размером более 1 МБ. Я получил путь к изображению с помощью пакета imagepicker flutter, но не могу получить размер изображения, например, в КБ или МБ. пожалуйста, помогите кому-нибудь.

Заранее спасибо Суров Бхаттачарджи

Ответ №1:

Убедитесь, что у вас есть доступ для чтения файлов, и вы можете использовать следующую служебную функцию, которая применяется ко всем типам файлов, включая изображения

 checkFileSize(path) {
    var fileSizeLimit = 1024;
    File f = new File(path);
    var s = f.lengthSync()
    print(s); // returns in bytes
    var fileSizeInKB = s / 1024;
    // Convert the KB to MegaBytes (1 MB = 1024 KBytes)
    var fileSizeInMB = fileSizeInKB / 1024;

    if(fileSizeInKB > fileSizeLimit) {
       print("File size greater than the limit");
       return false;
    } else {
      print("file can be selected");
      return true;
    }
 }
  

Ответ №2:

Вы можете использовать следующую функцию, чтобы получить размер изображения: Im.Image image = Im.decodeImage(ImageFile.readAsBytesSync()); А затем поместить его в простой оператор if-else.