问题标签 [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.
javascript - loadFromJSON 不包括 Fabric js 中的附加属性
我有这个 JSON:https
:
//codepen.io/dhavalsisodiya/pen/RJNNXw 该 json 具有作为 textAnchor 的附加属性。现在的问题是,当我尝试将该 json 加载到画布上时,该 textAnchor 属性不会包含在画布对象中。
您可以在此处查看示例:https : //codepen.io/dhavalsisodiya/pen/VdYLwo 正如您在 canavs 上看到的,textAnchor 未加载到画布上。
那么如何解决这个问题呢?
注意:我使用这个问题添加了 textAnchor 支持:如何使用 text-anchor : middle in fabric js
同样根据文档: http: //fabricjs.com/fabric-intro-part-3
我们使用附加属性“name”扩展了对象现有的 toObject 方法,因此该属性现在是 toObject 输出的一部分,因此出现在画布 JSON 表示中。值得一提的另一件事是,如果您像这样扩展对象,您还需要确保对象的“类”(本例中为 fabric.Rect)在“stateProperties”数组中具有此属性,以便从字符串表示加载画布会正确解析并将其添加到对象中。
所以不确定我必须修改js的哪一部分?
javascript - FabricJS - 能够输出(到 PNG)一小部分画布,而不是整个画布
我非常感谢有关 FabricJS 的一些反馈和帮助。
我在更大的 600 x 600px 画布中有一个 500 x 500px 像素边界区域(由虚线定义)。
但是,我只想将虚线区域内的小部分输出到 PNG,而不是整个画布。这很重要,因为用户应该能够更改其输出的边界区域大小(例如 Facebook 广告大小 [1200px]、名片大小 [???px] 等),但画布大小将保持不变。
在输出时,我只需要一个较小有界区域的 PNG。
FabricJS可以做到这一点吗?
我已经找到了一个小提琴来告诉你我的意思:http: //jsfiddle.net/prabhath/92jy8q52/
我的另一个想法是在更大的画布中创建一个更小的画布,但从我在网上看到的情况来看,边界控件在画布之外的区域不可见。我还没有探索内部/外部画布,但不确定这是否能满足我的需求。
提前致谢。
jquery - centeredScaling 不适用于滑块控件
centeredScaling 不适用于滑块控件。
当我们使用对象的角手动缩放对象时,它可以工作。
我想在我的项目中使用滑块控件缩放对象。
javascript - 复制和粘贴自定义 FabricJS 对象
我正在尝试在我的 FabricJS 项目中复制和粘贴对象。
这是 FabricJS 版本2.3.3
使用本机 FabricJS 对象可以正常工作。与演示 ( http://fabricjs.com/copypaste ) 中的完全一样。
但是在我创建了我的自定义 Class 之后(例如这里http://fabricjs.com/cross),我无法根据我的自定义 Class 粘贴对象。复制没问题,只是粘贴功能会抛出错误。
我得到的只是控制台日志中的一个错误:this._render 不是指向 FabricJS 库中某个行号的函数。
谁能告诉我为什么?谢谢!
这是我的自定义类:
这是 HTML 文件:(仅限 BODY 标记)
这里的复制和粘贴功能:
这是 FabricJS 库中崩溃的一段代码: 在此函数的最后一行。
fabricjs - 我们可以在 Fabricjs 的文本组件中添加滚动条吗?
我们需要为 fabricjs 文本组件提供滚动条。这样用户就可以固定组件的宽度和高度,如果文本不适合该宽度或高度,则应显示适当的滚动条,而不是根据文本增加宽度或高度。
提前致谢。
fabricjs - FabricJS 2-只有单个路径时在 SVG 路径上设置填充
因此,将 SVG 添加到画布中,如下所示:
稍后有一个按钮可以将组内的路径颜色更改为红色,执行此操作的代码是:
如果 SVG 有多个路径,这非常有效,但是当只存在一个路径时,_objects 属性不存在,因此我们无法执行循环和 item(i) 部分来设置路径上的填充。
问题是:当 _objects 不存在并且 item() 方法不存在因为它只是一个单一的路径时,我们现在如何设置填充?- 即它不是一个组。
fabricjs - FabricJs 在不使用 canvas.toJSON() 的情况下加载上一步/当前步骤
我正在使用 FabricJs 创建一个在线图像编辑器。
是一个简单的东西,这个动作:缩放、旋转、flipX、撤消、重做。
我首先尝试使用 toJSON 和 fromJSON,但是我看到当用户单击撤消按钮时,fabricjs 会重新加载图像,并且返回的配置对象canvas.toJSON()
非常大,我想将所有步骤存储在一个数据库。
我尝试创建自己的配置对象,仅存储以下属性:
单个鼠标事件是当用户在画布中移动/调整图像时,所有其他操作都以编程方式进行。
我遇到的问题是,当用户旋转图像,然后尝试应用过滤器时,旋转丢失,或者图像超出画布。
我在这里放了一些代码:
问题是我不知道如何存储
织物画布的配置(与 toJSON、loadFromJSON 相同,但属性较少),然后根据存储的配置更新画布对象。
任何帮助将不胜感激。也许我没有很好地解释我的问题,所以如果你们中的任何人有不明白的地方,我会很乐意回答你们的问题,并编辑帖子。
谢谢
fabricjs - 由于“最大纹理大小”,FabricJS 无法将过滤器应用于大图像
我可以通过一些帮助来理解面料的含义:最大纹理尺寸:16,384 - 16,384 什么?我使用的图像是 5MP (2560 x 1920) 并尝试对图像应用过滤器,如下所示:
图像对象消失,上面的消息出现在控制台中。如果图像< 2MP,我似乎只能对图像应用过滤器,这根本不理想。我真的不知道最大纹理大小是什么意思。
那么这是什么意思,我怎样才能让它允许更大尺寸图像上的过滤器呢?