printImage static method

Future<void> printImage({
  1. required String address,
  2. required List<int> imageBytes,
  3. required int imageWidth,
  4. required int imageHeight,
  5. PaperSize paperSize = PaperSize.mm58,
  6. ProgressCallback? onProgress,
  7. int addFeeds = 0,
  8. bool useImageRaster = false,
  9. required bool keepConnected,
})

Implementation

static Future<void> printImage({
  required String address,
  required List<int> imageBytes,
  required int imageWidth,
  required int imageHeight,
  PaperSize paperSize = PaperSize.mm58,
  ProgressCallback? onProgress,
  int addFeeds = 0,
  bool useImageRaster = false,
  required bool keepConnected,
}) async {
  final bytes = await _optimizeImage(
    paperSize: paperSize,
    src: imageBytes,
    srcWidth: imageWidth,
    srcHeight: imageHeight,
  );

  img.Image src = img.decodeJpg(bytes)!;

  final profile = await CapabilityProfile.load();
  final generator = Generator(
    paperSize,
    profile,
    spaceBetweenRows: 0,
  );
  List<int> imageData;
  if (useImageRaster) {
    imageData = generator.imageRaster(
      src,
      highDensityHorizontal: true,
      highDensityVertical: true,
      imageFn: PosImageFn.bitImageRaster,
    );
  } else {
    imageData = generator.image(src);
  }

  final additional = [
    ...generator.emptyLines(addFeeds),
    ...generator.text('.'),
  ];

  return printBytes(
    keepConnected: keepConnected,
    address: address,
    data: Uint8List.fromList([
      ...generator.reset(),
      ...imageData,
      ...generator.reset(),
      ...additional,
    ]),
    onProgress: onProgress,
  );
}