getMultiImages static method
of Future returned depending on outputType
:
-
ImageType.file return a html.File list of the selected images.
-
ImageType.bytes return a Uint8List list of the selected images.
-
ImageType.widget return an Image.memory list using the images' bytes.
List<html.File> imgFiles = await getMultiImages(ImageType.file);
List<Uint8List> imgBytes = await getMultiImages(ImageType.bytes);
List<Image> imgWidgets = await getMultiImages(ImageType.widget);
Implementation
static Future<List?> getMultiImages({required ImageType outputType}) async {
if (!(outputType is ImageType)) {
throw ArgumentError(
'outputType has to be from Type: ImageType if you call getImage()');
}
final images = await ImagePickerWeb()._pickMultiFiles('image');
if (images == null) return null;
switch (outputType) {
case ImageType.file:
return images;
case ImageType.bytes:
List<Uint8List> files = [];
for (final img in images) files.add(await img.asBytes());
return files.isEmpty ? null : files;
case ImageType.widget:
List<Uint8List> files = [];
for (final img in images) files.add(await img.asBytes());
if (files.isEmpty) return null;
return files.map<Image>((e) => Image.memory(e)).toList();
default:
return null;
}
}