как проверить размер изображения при выборе/выборе изображения в флаттере?
Вот код для получения изображения из галереи.
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
}
}