pickImageAsBytes static method
Implementation
static Future<Uint8List> pickImageAsBytes() async {
try {
final html.InputElement input = html.InputElement();
input.type = 'file';
input.accept = 'image/*';
input.click();
final html.File? file = await _waitForFileSelection(input);
if (file == null) throw Exception('No file selected');
final html.FileReader reader = html.FileReader();
final Completer<Uint8List> completer = Completer<Uint8List>();
reader.onLoadEnd.listen((html.Event e) {
final result = reader.result;
if (result is Uint8List) {
final List<int> bytes = result.toList();
completer.complete(Uint8List.fromList(bytes));
} else {
completer.completeError('Unexpected file reader result type');
}
});
reader.onError.listen((html.Event e) {
completer.completeError('Failed to read file: ${reader.error}');
});
reader.readAsArrayBuffer(file);
return completer.future;
} catch (e) {
throw Exception('Error picking image: $e');
}
}