Flutter plugin for scanning and generating QR codes using the ZXing library, supporting Android, iOS, and desktop platforms
flutterbarcode-generatorbarcode-scannergeneratorqrqrcodeqrcode-generatorqrcode-scannerscannerzxingbarcodezxscanner
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
920 B
29 lines
920 B
3 years ago
|
part of 'zxing.dart';
|
||
|
|
||
|
IsolateUtils? isolateUtils;
|
||
|
|
||
|
/// Starts reading barcode from the camera
|
||
|
Future<void> startCameraProcessing() async {
|
||
|
isolateUtils = IsolateUtils();
|
||
|
await isolateUtils?.startReadingBarcode();
|
||
|
}
|
||
|
|
||
|
/// Stops reading barcode from the camera
|
||
|
void stopCameraProcessing() => isolateUtils?.stopReadingBarcode();
|
||
|
|
||
|
Future<CodeResult> processCameraImage(CameraImage image,
|
||
|
{int format = Format.Any, double cropPercent = 0.5}) async {
|
||
|
final IsolateData isolateData = IsolateData(image, format, cropPercent);
|
||
|
final CodeResult result = await _inference(isolateData);
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
/// Runs inference in another isolate
|
||
|
Future<CodeResult> _inference(IsolateData isolateData) async {
|
||
|
final ReceivePort responsePort = ReceivePort();
|
||
|
isolateUtils?.sendPort
|
||
|
?.send(isolateData..responsePort = responsePort.sendPort);
|
||
|
final dynamic results = await responsePort.first;
|
||
|
return results;
|
||
|
}
|