scanImage method

Future<ParsedQRData?> scanImage(
  1. Uint8List imageBytes
)

Scan QR code from image bytes (PNG, JPEG, etc.)

Implementation

Future<ParsedQRData?> scanImage(Uint8List imageBytes) async {
  try {
    // Decode image
    final image = img.decodeImage(imageBytes);
    if (image == null) return null;

    // Convert to grayscale for better QR detection
    final grayscale = img.grayscale(image);

    // Create luminance source for ZXing
    final source = _ImageLuminanceSource(grayscale);

    // Decode QR code
    final reader = QRCodeReader();
    final result = reader.decode(BinaryBitmap(HybridBinarizer(source)));

    return parse(result.text);
  } catch (e) {
    // Failed to decode QR code
    print('QR scan error: $e');
  }

  return null;
}