addQrCodeAsImage method

Future<void> addQrCodeAsImage(
  1. String data, {
  2. int size = 280,
  3. bool raster = true,
})

QR als Bild. raster true → GS v 0 (imageRaster), false → ESC * (image). Welcher Befehl funktioniert, hängt vom Drucker ab — daher umschaltbar.

Der QR wird direkt aus der Modul-Matrix gerastert: jedes Modul wird auf ein ganzzahliges scale×scale-Quadrat abgebildet (rein schwarz/weiss, kein Anti-Aliasing). Dadurch sind die Kanten scharf per Konstruktion und das Bild ist deutlich kleiner/schneller ueber Bluetooth als der fruehere QrPainter→PNG-Roundtrip.

Implementation

Future<void> addQrCodeAsImage(String data, {int size = 280, bool raster = true}) async {
  try {
    final RasterImage img = renderQrMatrix(data, size: size);
    bytes.add(Uint8List.fromList(
      raster ? generator.imageRaster(img) : generator.image(img),
    ));
    myPosPaper.addImage(await encodePng(img));
  } catch (e) {
    if (kDebugMode) print('Error in addQrCodeAsImage: $e');
  }
}