draw method

  1. @override
Future<Uint8List> draw(
  1. int width,
  2. int height,
  3. List<File> imageFiles
)
override

Draws an NFT.

Implementation

@override
Future<Uint8List> draw(int width, int height, List<File> imageFiles) async {
  final recorder = PictureRecorder();
  final canvas = Canvas(
      recorder,
      Rect.fromPoints(
          Offset(0.0, 0.0), Offset(width.toDouble(), height.toDouble())));

  for (var imageFile in imageFiles) {
    Stopper.assertNotStopped();
    // final img = await cacheImage.getImage(imageFile);

    var codec = await instantiateImageCodec(imageFile.readAsBytesSync());
    var frame = await codec.getNextFrame();
    final img = frame.image;
    canvas.drawImage(img, Offset(0, 0), Paint());
  }

  final picture = recorder.endRecording();

  Image img = await picture.toImage(width, height);
  final ByteData? pngBytes =
      await img.toByteData(format: ImageByteFormat.png);

  return pngBytes!.buffer.asUint8List();
}