Как заставить используемую область Konva Js Stage передать в качестве свойств высоты / ширины в функцию toImage? - PullRequest
1 голос
/ 27 мая 2020

Я использую Konva Js 3.2.4 (хотя, вероятно, могу обновить) и пытаюсь использовать функцию toImage класса Stage. Похоже, что toImage () по умолчанию возвращает только изображение видимой области сцены, следовательно, свойство config передает начальные координаты и высоту / ширину области, возвращаемой в изображении.

Моя основная цель - вернуть изображение сцены, которое включает в себя каждую дочернюю фигуру в этом изображении (я использую его как изображение обложки для печати и т. Д. c). Есть ли способ легко получить используемую область сцены? Я представляю себе внешние границы используемой площади. В настоящее время я храню все свои формы в одном слое представления, и перед тем, как запустить это toImage, я разгруппировываю все формы, чтобы не было вложенных массивов дочерних элементов ниже слоя представления.

все дочерние элементы и используют их атрибуты x / y для установки minX, maxX, minY, maxY, но это вызывает проблемы при повороте фигуры, поскольку координаты x / y больше не могут гарантировать представление внутреннего / внешние границы формы. Я разрешаю пользователям вращаться с помощью стандартного трансформатора.

Любые указания будут очень признательны!

1 Ответ

1 голос
/ 28 мая 2020

Вы можете использовать node.getClientRect() для расчета общего размера любого узла Konva. Если вам нужно экспортировать полное изображение сцены, вы можете использовать это:

stage.toImage({
  ...stage.getClientRect(),
  callback: img => {
    console.log(img);
  }
})

Demo: https://jsbin.com/behoyoyeda/1/edit?html, js, output

...