Я создаю инструмент рисования, и одна из функций показывает обрезанное изображение нарисованного контура.
Путь, который я нарисовал (изображение)
Например, на рисунке выше, белый контур указывает на то, что я нарисовал, как инструмент рисования.
Обрезанное изображение
А вот обрезанное изображение пути. Если вы посмотрите на изображение, то увидите, что оно обрезает изображение так, как если бы он был закрыт, и поэтому обрезает область изображения, а не путь.
и вот код
function crop({ image, points }) {
return Observable.create(observer => {
const { width, height } = getImageSize(image);
const canvas = document.createElement('canvas') as HTMLCanvasElement;
const context = canvas.getContext('2d');
canvas.width = width;
canvas.height = height;
context.beginPath();
points.forEach(([x, y], idx) => {
if (idx === 0) {
context.moveTo(x, y);
} else {
context.lineTo(x, y);
}
});
context.clip();
context.drawImage(image);
...etc
}
Функция crop
получает points
, который состоит [координата x, координата y] [] отрисованного пути.
Есть ли способ показать изображение только тем путем, который я нарисовал?