Итак, contextTop - это контекст CanvasHTMLElement.Вы не можете добавить это.Вы можете добавить на полотно fabricJS только fabric.Object производные классы.
Похоже, пока невозможно.Они рисуют как пиксельный эффект, а затем позволяют экспортировать как изображение.Было бы неплохо расширить интерфейс кисти fabricJS для создания перерисовываемых объектов.
На данный момент с fabricJS и этой конкретной версией кисти, единственное, что вы можете сделать, это:
var canvas = new fabric.Canvas(document.getElementById('c'))
canvas.freeDrawingBrush = new fabric.CrayonBrush(canvas, {
width: 70,
opacity: 0.6,
color: "#ff0000"
});
canvas.isDrawingMode = true
canvas.on('mouse:up', function(opt) {
if (canvas.isDrawingMode) {
var c = fabric.util.copyCanvasElement(canvas.upperCanvasEl);
var img = new fabric.Image(c);
canvas.contextTopDirty = true;
canvas.add(img);
canvas.isDrawingMode = false;
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.4.1/fabric.min.js"></script>
<script src="https://tennisonchan.github.io/fabric-brush/bower_components/fabric-brush/dist/fabric-brush.min.js"></script>
<button>Enter free drawing</button>
<canvas id="c" width="500" height="500" ></canvas>
Это просто создание изображения из contextTop и добавление в качестве объекта.