如何从定制器绘制的画布中获取图像



在我的flutter应用程序中,我使用自定义者允许用户在屏幕上绘制其签名。我需要找到一种将其保存为图像的方法。

pictureRecorder可以按照以前的stackoverflow答案将PictureRecorder对象传递到画布上时效果很好:

final recorder = new PictureRecorder();
Canvas(recorder).drawSomething;
final picture = recorder.endRecording();

使用CustomPainter时,画布是Paint()函数的参数。

class myPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    drawToCanvas(canvas);
  @override
  bool shouldRepaint(CustomPainter old) {
    return false; 
}

因此,总结:

如何从定制器中产生图像?
如果答案是使用PictureRecorder,我该如何将录音机传递给画布?

您无需将PictureRecorder传递给CustomPainter paint方法中的画布。取而代之的是,您可以用带有图片录音器的不同画布直接调用油漆。例如:

Future<Image> getImage() async {
final PictureRecorder recorder = PictureRecorder();
myPainter.paint(Canvas(recorder), mySize);
final Picture picture = recorder.endRecording();
return await picture.toImage(width, height);
}

相关内容

  • 没有找到相关文章

最新更新