как проверить размер изображения при выборе/выборе изображения в флаттере?

Вот код для получения изображения из галереи.

      Future getImage() async {
    var image = await ImagePicker().getImage(source: ImageSource.gallery);
     getImageSize();
    // imageQuality: 50;
    setState(() {
      selectedImage = File(image!.path);
    });
  }

код для получения размера выбранного изображения.

      double getImageSize(File selectedImage) {
    final bytes = selectedImage.readAsBytesSync().lengthInBytes;
    final kb = bytes / 1024;
    final mb = kb / 1024;
    if (kb < 5000.0) {
      print("Image is Less than 5MB");
    } else {
      print("Image is More than 5MB...!!!");
    }
    return kb;
  }

Таким образом, после выбора изображения и проверки, если изображение меньше 5 МБ, оно должно вернуть «КБ», а если размер изображения больше «5 МБ», то функция должна отображать сообщение об ошибке в SnackBar.

1 ответ

вы можете сделать это так

       XFile? imageFile = await ImagePicker().pickImage(source: ImageSource.camera);
 if (imageFile != null) {
      final decodedImage = await decodeImageFromList(await imageFile.readAsBytes());
    if (decodedImage.height > 255 && decodedImage.width > 255) {
        //do your validation here 
         }
  }
Другие вопросы по тегам