Flutter: рисовать поверх изображения с помощью CustomPainter с DrawnLines

Часть приложения, над которым я работаю, включает редактирование фотографий. Я пытаюсь включить возможность рисования на изображении. Я не могу найти примеры того, как это сделать на Github или в документации.

Это то, что у меня есть до сих пор:

      class Sketcher extends CustomPainter {
  final List<DrawnLine> lines;
  final ui.Image image;
  final BuildContext context;

  Sketcher({required this.lines, required this.image,});


  @override
  void paint(Canvas canvas, Size size) {
    Paint paint = Paint()
      ..color = Colors.redAccent
      ..strokeCap = StrokeCap.round
      ..strokeWidth = 5.0;




    for (int i = 0; i < lines.length; ++i) {
      if (lines[i] == null) continue;
      for (int j = 0; j < lines[i].path.length - 1; ++j) {
        if (lines[i].path[j] != null && lines[i].path[j + 1] != null) {
          paint.color = lines[i].color;
          paint.strokeWidth = lines[i].width;
          canvas.drawLine(lines[i].path[j], lines[i].path[j + 1], paint);
        }
      }
    }

// Add DrawnLine to image
  }

  @override
  bool shouldRepaint(Sketcher oldDelegate) {
    return true;
  }
}

На данный момент я показываю нарисованные линии поверх изображения в Виджет.

Есть ли способ объединить холст с изображением, изменив строки изображения?

Я уже знаю о canvas.drawImage(), однако я не нашел ни одного работающего кода, и ни у кого нет подобной проблемы в Интернете.

0 ответов

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