在我的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);
}