Как получить изображение с холста, нарисованного с помощью CustomPainter?

В моем приложении Flutter я использую CustomPainter, чтобы позволить пользователю рисовать свою подпись на экране. Мне нужно найти способ сохранить это как изображение.

PictureRecorder прекрасно работает, когда вы можете передать объект PictureRecorder на холст в соответствии с предыдущие ответы StackOverflow:

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; 
}

Итак, вкратце:

Как я могу создать изображение из CustomPainter?
Если ответ заключается в использовании PictureRecorder, как я могу передать рекордер на холст?

Применение градиента к изображению с помощью CSS
Применение градиента к изображению с помощью CSS
Здравствуйте, братья и сестры, как дела? Недавно я застрял на применении градиента к изображению. Я применял это много раз, но иногда наши требования...
Получение URL-адреса изображения курса в Moodle с помощью PHP
Получение URL-адреса изображения курса в Moodle с помощью PHP
Moodle - это популярная система управления обучением с открытым исходным кодом, используемая многими учебными заведениями и организациями по всему...
4
0
1 473
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не нужно передавать PictureRecorder на холст в методе CustomPainterpaint. Вместо этого вы можете вызвать краску напрямую с другого холста, на котором есть записывающее устройство. Например:

Future<Image> getImage() async {
final PictureRecorder recorder = PictureRecorder();
myPainter.paint(Canvas(recorder), mySize);
final Picture picture = recorder.endRecording();

return await picture.toImage(width, height);
}

Привет, мой друг, у меня ошибка при попытке реализовать твой ответ. myPainter — это класс, так как же вы с этим справляетесь?

Ali Briceño 01.05.2020 02:04

Другие вопросы по теме