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.
Khoren Markosyan
f598aa876b
|
3 years ago | |
---|---|---|
.vscode | 3 years ago | |
android | 3 years ago | |
example | 3 years ago | |
ios | 3 years ago | |
lib | 3 years ago | |
test | 3 years ago | |
zxscanner | 3 years ago | |
.gitignore | 3 years ago | |
.metadata | 3 years ago | |
CHANGELOG.md | 3 years ago | |
LICENSE | 3 years ago | |
README.md | 3 years ago | |
analysis_options.yaml | 3 years ago | |
init.sh | 3 years ago | |
pubspec.yaml | 3 years ago |
README.md
flutter_zxing
A barcode and QR code scanner based on ZXing C++ library natively in Flutter with Dart FFI.
Demo Screenshots
Supported Barcode 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 |
Features
- Read barcode from camera
- Read barcode from gallery
- Create barcode from text
- Read multiple barcodes from camera or gallery
- Return scanned barcode position and size
Getting Started
To read barcode:
import 'package:flutter_zxing/flutter_zxing.dart';
// Use ReaderWidget to quickly read barcode from camera image
@override
Widget build(BuildContext context) {
return Scaffold(
body: ReaderWidget(
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:
import 'package:flutter_zxing/flutter_zxing.dart';
import 'dart:typed_data';
import 'package:image/image.dart' as imglib;
// Use WriterWidget to quickly read barcode from camera image
@override
Widget build(BuildContext context) {
return Scaffold(
body: WriterWidget(
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.QRCode, 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
MIT License. See LICENSE.