问题标签 [fabricjs2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
569 浏览

angular - FabricJs 2.1 和 Angular 5.2

我一直在使用 FabricJS 2.0 rc-3 和 Angular 5.0.3,它们一起工作得很好,但现在我开始一个新项目并使用当前最新的稳定 FabricJS 2.1 和 Angular 5.2.7,但它们不起作用。

这就是我之前导入 Fabric 并使用它的方式,没有任何问题:

在具有新版本的新项目中,这不起作用。它编译,但在运行时我得到这个:

我也尝试了以下导入,但它甚至没有编译:

我在网上上下搜索,但没有找到有关如何解决此问题的任何线索。

包.json:

0 投票
1 回答
1113 浏览

svg - fabricjs:v2.2.1 如果 SVG 上只有一个路径,那么 SVG 路径在哪里存储在织物对象上

我正在将我的应用程序中的 fabricjs 从版本 1.7.22 升级到 2.2.1。

我主要使用在 Illustrator 中创建的 SVG 对象。然后在应用程序中,我正在处理 SVG 对象中的路径。

在 v1.7.22 中,svg 路径将位于每个对象的“路径”属性下......

在此处输入图像描述

现在有了 2.2.1,我看到 'paths' 消失了,并且有一个 '_objects' 属性。

在此处输入图像描述

这一切都很好。

我的问题是 '_objects' 属性仅在 SVG 对象上有超过 1 个路径时才存在,否则,我看不到 SVG 路径的存储位置。

所以如果是这样的话...

在此处输入图像描述

...然后 '_objects' 属性存在。但如果是这样的话...

在此处输入图像描述

..那么没有'_objects'属性。

那么如果有一个只有一条路径的 SVG 对象,那么该路径存储在织物对象中的什么位置呢?

0 投票
2 回答
864 浏览

javascript - fabricjs:在 loadFromJSON 之后保留对象图像过滤器的正确索引

我正在将过滤器应用于对象(在图像过滤器演示之后)并且一切正常,但是在我保存并加载画布后,图像过滤器会更改索引。

目前我有四个过滤器,它们按索引应用(如演示中所示)。

0:灰度

1:反转

2:去除颜色

3 :- 混合颜色

因此,如果我应用灰度和删除颜色,“过滤器”数组看起来像这样,索引 0 和 2 是正确的......

在此处输入图像描述

但是在我加载画布(使用 loadFromJSON)之后,对象的“过滤器”数组看起来像这样,索引被重置......

在此处输入图像描述

有什么方法可以加载对象并保留过滤器索引?有一些依赖于此的代码,当我加载具有过滤器对象的画布时,它会导致错误。

我尝试在创建对象时应用以下内容...

创建对象时它工作正常...

在此处输入图像描述

但是当它被加载时,错误的索引被删除并且它的结果相同......

在此处输入图像描述

0 投票
0 回答
348 浏览

javascript - 在 fabric.js 版本 2.2.0 中设置宽度/高度不适合对象大小

  • 我正在使用面料版本“2.2.0”。
  • 在创建图像对象时传递顶部、左侧、宽度、高度。

const imageobj = new fabric.Image(image, {'top': 50, 'left': 50, 'width': 300, 'height': 300});

  • 传递给初始化图像对象的宽度/高度值在图像中使用。
  • 但是当图像的宽度/高度小于传递给初始化对象的宽度/高度值时,图像不适合整个宽度/高度
  • 如果实际图像的宽度/高度大于传递给初始化对象的宽度/高度,则图像被裁剪

我希望图像适合给定的宽度/高度;但不应更改 scaleX/scaleY。它应该始终为 1。

我了解 Fabric.js V 2.0 http://fabricjs.com/v2-break-changes中的 fabric.image 发生了重大变化

  • 我已经按照上面链接中的建议更改了 fabric.Image.fromObject() 。但这不会影响图像创建期间的设置宽度/高度。

在 fabricjs 版本 1.7.19 中,完整的图像适合给定的宽度/高度。我想要与 fabric.js2.2.0 类似的行为

0 投票
2 回答
208 浏览

javascript - 引导点多边形创建

我正在尝试帮助我的用户创建多边形,在所述多边形的顶点中使用圆圈。我知道如何添加圆圈,但我没有看到如何在创建多边形结束时通过双击消除它们,它总是抛出一个错误,告诉我要删除的对象未定义

小提琴

我该如何解决这个错误?

0 投票
2 回答
991 浏览

javascript - FabricJs:从 JSON (patternSourceCanvas) 保存和加载动态模式

我在保存和加载应用于对象的动态模式时遇到问题。

我在网上搜索了解决此问题的方法,但无济于事。我明白它为什么会发生,但不明白如何解决它。

这基本上就是我正在做的......

  1. 将动态模式应用于对象。
  2. 使用...'JSON.stringify(canvas.toJSON([...]))' 将画布保存到 MongoDB
  3. 使用“loadFromJSON”加载画布
  4. 收到错误“未捕获的 ReferenceError:patternSourceCanvas 未定义”

我在这个问题上发现的一切都可以追溯到至少 2 年前(有些甚至是 2013 年),没有可靠的代码示例。

更新

这是我用来在路径上应用模式的功能......

0 投票
1 回答
1755 浏览

javascript - fabricjs 对象选择不适用于平移

我一直在使用 fabricjs 来创建绘图工具。有一个大图像作为画布背景和平移功能。用户可以在画布上拖放对象。但是当我们平移画布时,没有选择画布上的对象放置。

要检查问题,请在视口下部拖放圆圈,然后将画布向上平移到一半,并检查放置在画布上的对象不可选择。即使您尝试将对象移动到视口之外,它也将无法选择。

0 投票
1 回答
242 浏览

fabricjs - 织物。禁用所有事件/选择。(制作滴管)

需要使用吸管更改选定对象的颜色,我可以使用这种方式获得颜色:

但是单击某处会选择其他对象或取消选择当前对象。有什么方法可以暂时禁用所有事件?

在对象上设置selectable = false也不是解决方案,因为如果单击背景或其他对象,当前对象将被取消选择。

0 投票
2 回答
8478 浏览

fabricjs - FabricJS - 运行 toDataURL 时“可能无法导出受污染的画布”JS 错误

我有一个名为 ImageContainer 的自定义组件,它基本上创建一个矩形并将图像应用为填充图案。

当我在画布上运行函数 toDataURL 时,出现 js 错误

我试图实现的结果应该创建一个 png 数据并将其作为 src 应用到图像标签上。

知道如何解决吗?肿瘤坏死因子

https://jsfiddle.net/redlive/a444p13x/

0 投票
1 回答
50 浏览

fabricjs - 当我从 FabricJS builder 下载时,BlendImage 过滤器不可用

当我从 FabricJS builder 下载时,BlendImage 过滤器不可用

我从下面的链接中选择了所有选项

http://fabricjs.com/build/