drawChar function

Image drawChar(
  1. Image image,
  2. String char,
  3. {required BitmapFont font,
  4. required int x,
  5. required int y,
  6. Color? color,
  7. Image? mask,
  8. Channel maskChannel = Channel.luminance}
)

Draw a single character from char horizontally into image at position x,y with the given color.

Implementation

Image drawChar(Image image, String char,
    {required BitmapFont font,
    required int x,
    required int y,
    Color? color,
    Image? mask,
    Channel maskChannel = Channel.luminance}) {
  final c = char.codeUnits[0];
  if (!font.characters.containsKey(c)) {
    return image;
  }

  final ch = font.characters[c]!;
  final x2 = x + ch.width;
  final y2 = y + ch.height;
  final cIter = ch.image.iterator..moveNext();

  for (var yi = y; yi < y2; ++yi) {
    for (var xi = x; xi < x2; ++xi, cIter.moveNext()) {
      final cp = cIter.current;
      if (color != null) {
        drawPixel(image, xi, yi, color,
            alpha: cp.aNormalized, mask: mask, maskChannel: maskChannel);
      } else {
        drawPixel(image, xi, yi, cIter.current,
            mask: mask, maskChannel: maskChannel);
      }
    }
  }

  return image;
}