onSnapshot method
Implementation
Future<bool> onSnapshot(XFile image) async {
bool ok = true;
// detect in image
if (widget.model.detectors != null) {
DetectableImage? detectable;
// blob image - created in web
if (image.path.startsWith("blob:")) {
var bytes = await image.readAsBytes();
var codec = await instantiateImageCodec(bytes);
var frame = await codec.getNextFrame();
var data =
await frame.image.toByteData(format: ImageByteFormat.rawRgba);
if (data != null) {
detectable = DetectableImage.fromRgba(
data.buffer.asUint8List(), frame.image.width, frame.image.height);
}
}
// blob image - created in mobile
else {
detectable = DetectableImage.fromFilePath(image.path);
}
//detect
if (detectable != null) widget.model.detectInImage(detectable);
}
// apply transforms
File file = await widget.model.applyTransforms(image);
// return file
widget.model.onFile(file);
return ok;
}