imageFromText function
Implementation
Future<ImageData> imageFromText(
String text, {
Size? labelSize,
TextStyle style = presetTextStyle,
//TextAlign alignment = TextAlign.center,
}) async {
m.TextPainter textPainter = m.TextPainter(
// Adjust the scaling factor for good resolution when printing
textScaler: TextScaler.linear(50),
text: TextSpan(text: text, style: style),
textAlign: TextAlign.center,
textDirection: TextDirection.ltr,
)..layout(minWidth: 0, maxWidth: double.infinity);
final Size size = Size(textPainter.width, textPainter.height);
final PictureRecorder recorder = PictureRecorder();
Canvas newCanvas = Canvas(recorder);
newCanvas.drawColor(m.Colors.white, m.BlendMode.color);
textPainter.paint(newCanvas, Offset.zero);
final Picture picture = recorder.endRecording();
final res = await picture.toImage(size.width.toInt(), size.height.toInt());
final data = await res.toByteData(format: ImageByteFormat.png);
if (data == null) throw Exception("Failed to convert image to byte data.");
return img.decodePng(Uint8List.view(data.buffer))!;
}