pictureAsset static method

Future<BitmapDescriptor> pictureAsset({
  1. required String assetPath,
  2. required double width,
  3. required double height,
})

Implementation

static Future<BitmapDescriptor> pictureAsset({
  required String assetPath,
  required double width,
  required double height,
}) async {
  ByteData imageFile = await rootBundle.load(assetPath);
  final ui.PictureRecorder pictureRecorder = ui.PictureRecorder();
  final Canvas canvas = Canvas(pictureRecorder);
  final Uint8List imageUint8List = imageFile.buffer.asUint8List();
  final ui.Codec codec = await ui.instantiateImageCodec(imageUint8List);
  final ui.FrameInfo imageFI = await codec.getNextFrame();

  paintImage(
      canvas: canvas,
      rect: Rect.fromLTWH(0, 0, width.toDouble(), height.toDouble()),
      image: imageFI.image);

  final _image = await pictureRecorder
      .endRecording()
      .toImage(width.toInt(), (height).toInt());
  final data = await _image.toByteData(format: ui.ImageByteFormat.png);
  return BitmapDescriptor.fromBytes(data!.buffer.asUint8List());
}