Browse Source

update README.md

pull/3/head
Khoren Markosyan 3 years ago
parent
commit
113c6f2221
  1. 70
      README.md
  2. 2
      lib/flutter_zxing.dart
  3. 1
      lib/isolate_utils.dart
  4. 1
      lib/zxing_reader_widget.dart

70
README.md

@ -2,6 +2,76 @@
A barcode and QR code scanner based on [ZXing C++](https://github.com/nu-book/zxing-cpp) library natively in Flutter with Dart FFI. A barcode and QR code scanner based on [ZXing C++](https://github.com/nu-book/zxing-cpp) library natively in Flutter with Dart FFI.
## Supported Formats
| 1D product | 1D industrial | 2D
| ---------- | ----------------- | --------------
| UPC-A | Code 39 | QR Code
| UPC-E | Code 93 | DataMatrix
| EAN-8 | Code 128 | Aztec
| EAN-13 | Codabar | PDF417
| DataBar | ITF | MaxiCode (beta)
| | DataBar Expanded |
## Getting Started
### To read barcode:
```dart
import 'package:flutter_zxing/flutter_zxing.dart';
// Use ZxingReaderWidget to quickly read barcode from camera image
@override
Widget build(BuildContext context) {
return Scaffold(
body: ZxingReaderWidget(
onScan: (result) async {
// Do something with the result
},
),
),
);
// Or use FlutterZxing to read barcode from camera image directly
cameraController?.startImageStream((img) async {
final bytes = await convertImage(img);
final result = FlutterZxing.readBarcode(bytes, Format.Any, img.width, img.height, 200, 200);
if (result.isValidBool) {
debugPrint(result.textString);
}
return null;
});
```
### To create barcode:
```dart
import 'package:flutter_zxing/flutter_zxing.dart';
import 'dart:typed_data';
import 'package:image/image.dart' as imglib;
// Use ZxingWriterWidget to quickly read barcode from camera image
@override
Widget build(BuildContext context) {
return Scaffold(
body: ZxingWriterWidget(
onSuccess: (result, bytes) {
// Do something with the result
},
onError: (error) {
// Do something with the error
},
),
),
);
// Or use FlutterZxing to create barcode directly
final text = 'Text to encode';
final result = FlutterZxing.encodeBarcode(text, 300, 300, Format.Any, 10, 0);
if (result.isValidBool) {
final img = imglib.Image.fromBytes(width, height, result.bytes);
final encodedBytes = Uint8List.fromList(imglib.encodeJpg(img));
// use encodedBytes as you wish
}
```
## License ## License
MIT License. See [LICENSE](https://github.com/khoren93/flutter_zxing/blob/master/LICENSE). MIT License. See [LICENSE](https://github.com/khoren93/flutter_zxing/blob/master/LICENSE).

2
lib/flutter_zxing.dart

@ -12,6 +12,8 @@ import 'generated_bindings.dart';
export 'generated_bindings.dart'; export 'generated_bindings.dart';
export 'zxing_reader_widget.dart'; export 'zxing_reader_widget.dart';
export 'zxing_writer_widget.dart'; export 'zxing_writer_widget.dart';
export 'image_converter.dart';
export 'scanner_overlay.dart';
class FlutterZxing { class FlutterZxing {
static const MethodChannel _channel = MethodChannel('flutter_zxing'); static const MethodChannel _channel = MethodChannel('flutter_zxing');

1
lib/isolate_utils.dart

@ -4,7 +4,6 @@ import 'dart:math';
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'flutter_zxing.dart'; import 'flutter_zxing.dart';
import 'image_converter.dart';
// Inspired from https://github.com/am15h/object_detection_flutter // Inspired from https://github.com/am15h/object_detection_flutter

1
lib/zxing_reader_widget.dart

@ -10,7 +10,6 @@ import 'package:flutter_beep/flutter_beep.dart';
import 'flutter_zxing.dart'; import 'flutter_zxing.dart';
import 'isolate_utils.dart'; import 'isolate_utils.dart';
import 'scanner_overlay.dart';
class ZxingReaderWidget extends StatefulWidget { class ZxingReaderWidget extends StatefulWidget {
const ZxingReaderWidget({ const ZxingReaderWidget({

Loading…
Cancel
Save