【问题标题】:Flutter Image picker with max size of 5 mb最大尺寸为 5 mb 的 Flutter 图像选择器
【发布时间】:2023-01-18 19:25:03
【问题描述】:

我在 flutter 中使用图像选择器包,所以我想提到所选图像的最大大小应为 5 MB,在包中有一个名为 imagequality 的参数取 0-100,但不等于 5 mb

 getImageFromGallery() async {
    try {
      var pickedfiles = await imagePicker.pickMultiImage(imageQuality: 5);

      if (pickedfiles.isNotEmpty) {

        



        for (int i = 0; i < pickedfiles.length; i++) {
          previewList.add(pickedfiles[i].path);
        }
        setState(() {});
      }
    } catch (e) {
      log(e.toString());
    }
  }

【问题讨论】:

    标签: flutter image dart flutter-dependencies


    【解决方案1】:

    试试这个,我希望这有帮助

     selectImagesFromImagePicker() async{
      // e.g 
      final knowSize = await defindSize(fileSelected, 2);
                if (double.parse(knowSize.toString()) > 5.0) {
                  SomeSnackBar("File too large", "Limit is 5 mb below");
                } else {
                  log("$knowSize mb", name: "FILE SIZE");
                  filesChosen.add(File(x!));
                }
    }  
      // Function to know the size of a certain file
      defindSize(String? path, int decimals) {
            final file = File(path!);
            int bytes = file.lengthSync();
            log("lengthSync $bytes", name: "FILE SIZE");
            double sizeMb = bytes / (1000 * 1000);
            // the return is mb default
            return sizeMb.toStringAsFixed(decimals);
            // below if you wanted to return suffix just uncomment them
            // const suffixes = ["b", "kb", "mb", "gb", "tb"];
            // var i = (m.log(bytes) / m.log(1024)).floor();
            // return ((bytes / m.pow(1024, i)).toStringAsFixed(decimals)) + suffixes[i];
          }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 2013-01-17
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多