exportAsImage method
Exporta como imagen PNG en memoria
Implementation
Future<Uint8List?> exportAsImage({
Color? penColor,
Color? backgroundColor,
double? strokeWidthOverride,
Size size = const Size(600, 300),
}) async {
if (_points.isEmpty) return null;
final recorder = ui.PictureRecorder();
final canvas = Canvas(recorder);
final bgPaint =
Paint()
..color = backgroundColor ?? exportBackgroundColor
..style = PaintingStyle.fill;
final penPaint =
Paint()
..color = penColor ?? exportPenColor
..strokeCap = StrokeCap.round
..strokeWidth = strokeWidthOverride ?? strokeWidth;
canvas.drawRect(Rect.fromLTWH(0, 0, size.width, size.height), bgPaint);
for (int i = 0; i < _points.length - 1; i++) {
final p1 = _points[i]?.offset;
final p2 = _points[i + 1]?.offset;
if (p1 != null && p2 != null) {
canvas.drawLine(p1, p2, penPaint);
}
}
final picture = recorder.endRecording();
final img = await picture.toImage(size.width.toInt(), size.height.toInt());
final byteData = await img.toByteData(format: ui.ImageByteFormat.png);
return byteData?.buffer.asUint8List();
}