KonvaJS:从中心缩放图像

时间:2016-09-05 10:33:47

标签: javascript canvas offset konvajs

我在缩放Konva.Image时面临一些挑战。我想从它的中心点缩放图像。虽然我能够从中心扩展它,但我不确定这是否是一种正确的方式。目前它是从它的top-left角落缩放的。要从中心点缩放图像,我使用offset将其设置为image.setOffset()。但我不知道为什么它会移动图像。我这样做:

  //setting the offset to center
  //but don't know why it's moving the image.
  yoda.setOffset({
    x: yoda.width() / 2,
    y: yoda.height() / 2
  });
  // setting it's position back to original
  // position but don't know why I need to
  // adding the offset values
  yoda.position({
    x: 50 + yoda.width() / 2,
    y: 50 + yoda.height() / 2
  });

要缩放图像,我这样做:

 yoda.scale({
          x: 0.5,
          y: 0.5
        });
        layer.draw();

还有其他方法可以达到同样的目的吗?这是要播放的plunkr

1 个答案:

答案 0 :(得分:1)

这是Konva个节点的预期行为。您必须同时使用offset{x,y}属性。

您可以避免使用offset,但在这种情况下,您必须在缩放时更改{x,y}