【问题标题】:image fit into canvas fabricjs图像适合画布fabricjs
【发布时间】:2021-06-13 00:28:26
【问题描述】:

我正在使用 Fabricjs 使用当前代码上传图片

图像仅显示完整图像的 1/4。它没有在这个 tscode 的画布中显示完整的图像,我正在手动设置图像的宽度和高度。

这是我的 Ts 代码

  addImage(canvasInst, imageUrl) {
fabric.Image.fromURL(imageUrl, img => {
  var oImg = img.set({
    left: 0,
    top: 0
  });
  var canvasWidth = canvasInst.width / canvasInst.getZoom();
  oImg.scaleToWidth(canvasWidth);
  canvasInst.add(oImg).renderAll();
  canvasInst.toDataURL({ format: "png", quality: 0.8 });
});

}

但我正在尝试其他方式 scaletowidth 但这在这里不起作用

这里是stackblitz

例子

【问题讨论】:

    标签: javascript angular fabricjs


    【解决方案1】:

    FabricJS 使用属性scaleXscaleY 来确定图像的大小,而widthheight 属性用于指定应该使用多少原始图像尺寸(缩小这些值将裁剪图像,而不是缩放它)。

    在您的链接示例中,您在画布上运行 scaleToWidth()。您需要在图像上运行它。

    fabric.Image.fromURL(imageUrl, img => {
      var oImg = img.set({
        left: 0,
        top: 0
      });
      var canvasWidth = canvasInst.width / canvasInst.getZoom();
      oImg.scaleToWidth(canvasWidth);
      canvasInst.add(oImg).renderAll();
    });
    

    【讨论】:

    • 这不是在中心
    • 拟合图像只是将其缩放到画布的宽度。我会更新我的答案给你看。
    • 是的,请等待
    • 我用你的代码更新了,但图像仍然不在中心
    • 如果你我的问题我用你的代码更新了
    猜你喜欢
    • 2016-09-30
    • 2020-10-24
    • 1970-01-01
    • 2015-11-07
    • 2018-12-25
    • 2014-05-31
    • 2015-07-29
    • 2018-06-26
    • 1970-01-01
    相关资源
    最近更新 更多