Fabric.js是一个HTML5画布库,为画布提供了一个对象模型,一个SVG到画布的渲染器和一个画布到SVG的解析器。
在 FabricJs 中使用 FreeDrawing 绘制某些内容后,您可以选择绘制的内容并移动它。有没有办法禁用此选择?
我想使用 Fabric Canvas 库来调整上传到浏览器中的图像的大小 - 然后再次下载调整大小的图像。 上传按钮工作正常,但不显示图像...
为什么 Fabric v5 不允许我在 safari 中拖动或调整大小
我使用的是 Safari 版本 15 我创建了一个网页,我希望能够通过 Fabric.js 拖动一些文本。 这在 IE (chromium)、Chrome、Brave 和 Firefox 中运行得非常好。我只是哈...
我的 HTML5 画布中有一个图像背景。 var canvas = new Fabric.Canvas('#canvas1'); canvas.setBackgroundImage( 'http://fabricjs.com/assets/jail_cell_bars.png', 可以...
在这个 jsFiddle 中,我有一个包含矩形和文本框的 Fabric 组。我需要能够在不缩放文本的情况下缩放矩形,因此我尝试在选择组时取消分组,然后分组...
Fabric Canvas 和 StaticCanvas 的区别
谁能解释一下Fabric JS中Canvas和Static Canvas的区别和用途。我对这两个话题都很困惑!
Fabric.js 与 Vue 3 - 无法加载 svg 图像
我正在尝试使用 Fabric.js ^6.3.0 和 Vue 3 将 svg 图像加载到画布: 从 'fabric' 导入 * 作为布料 从 'vue' 导入 { onMounted, ref } 常量 </desc> <question vote="1"> <p>我正在尝试使用 Fabric.js ^6.3.0 和 Vue 3 将 svg 图像加载到画布:</p> <pre><code><script setup lang="ts"> import * as fabric from 'fabric' import { onMounted, ref } from 'vue' const fabricCanvas = ref() onMounted(() => { const canvas = new fabric.Canvas(fabricCanvas.value) fabric.loadSVGFromURL('./assets/roof.svg', (objects, options) => { const svg = fabric.util.groupSVGElements(objects, options) canvas.add(svg) canvas.renderAll() }) }) </script> <template> <canvas ref="fabricCanvas" width="500" height="500"></canvas> </template> </code></pre> <p>什么也没有发生,svg 没有加载到画布中。但如果我将 Jquery 与 Fabric.js 5.3.0 一起使用,这段代码就可以正常工作</p> <p>在这一行<pre><code>const svg = fabric.util.groupSVGElements(objects, options)</code></pre>中,我遇到了打字稿错误:<pre><code>objects</code></pre>:“Element”类型的参数不能分配给“FabricObject<Partial, SerializedObjectProps, ObjectEvents>[]”类型的参数</p> <p>您尝试过使用 Fabric 的 Vue 3 吗?请帮助我!</p> </question> <answer tick="false" vote="0"> <p>有同样的问题。我找到了解决方案。 基于官方描述:<a href="https://fabricjs.com/api/functions/loadsvgfromurl/" rel="nofollow noreferrer">https://fabricjs.com/api/functions/loadsvgfromurl/</a> loadSVGFromURL 的第二个参数现在获取“原始 svg 元素和生成的 FabricObject 作为参数”。所以你可以使用第二个参数,就像它一样!</p> <pre><code>fabric.loadSVGFromURL(svgFile, (_orig, converted) => { this.canvas.add(converted); this.canvas.renderAll(); }); </code></pre> </answer> </body></html>
我希望向我的 Fabric.js 应用程序添加 Open-Type 字体。我发现这个问题,Custom font in Pixi.js,几乎问同样的事情。我们如何从文件系统加载字体?我尝试使用...
我可以使用画布内的计算机放大和缩小。但是,我无法在移动设备(智能手机、平板电脑等)上放大和缩小。当我查看文档时,我发现了 &...
将 SVG 添加到 FabricJS 画布时出现类型错误(不可迭代)
我有一个fabricjs画布,我正在尝试向其中添加一个SVG。但无论我做什么,我都会遇到问题。它一直在说: “未捕获(承诺中)类型错误:t 不可迭代”。 让 svg = ` 我有一个fabricjs画布,我正在尝试向其中添加一个SVG。但无论我做什么,我都会遇到问题。它一直在说: “未捕获(承诺中)类型错误:t 不可迭代”。 let svg = `<svg viewBox="-8 -8 136 136"> <path stroke="#000000" stroke-width="8" d="m0 51.82677l0 0c0 -28.623135 23.203636 -51.82677 51.82677 -51.82677l0 0c13.745312 0 26.927654 5.4603047 36.64706 15.17971c9.719406 9.719404 15.17971 22.901749 15.17971 36.64706l0 0c0 28.623135 -23.203636 51.82677 -51.82677 51.82677l0 0c-28.623135 0 -51.82677 -23.203636 -51.82677 -51.82677zm25.913385 0l0 0c0 14.311565 11.60182 25.913387 25.913385 25.913387c14.311565 0 25.913387 -11.601822 25.913387 -25.913387c0 -14.311565 -11.601822 -25.913385 -25.913387 -25.913385l0 0c-14.311565 0 -25.913385 11.60182 -25.913385 25.913385z" fill="none"></path> </svg>`; let canvas = new fabric.Canvas("canvas"); let path = fabric.loadSVGFromString(svg, function(objects, options) { let obj = fabric.util.groupSVGElements(objects, options); obj.set({ left: canvas.width / 2 - obj.width / 2, top: canvas.height / 2 - obj.height / 2 }); canvas.add(obj).renderAll(); }); 希望有人可以帮助我 我不确定您使用的是哪个版本,但我已将您的代码添加到可运行的代码片段中,它似乎对我来说工作得很好: let svg = `<svg viewBox="-8 -8 136 136"> <path stroke="#000000" stroke-width="8" d="m0 51.82677l0 0c0 -28.623135 23.203636 -51.82677 51.82677 -51.82677l0 0c13.745312 0 26.927654 5.4603047 36.64706 15.17971c9.719406 9.719404 15.17971 22.901749 15.17971 36.64706l0 0c0 28.623135 -23.203636 51.82677 -51.82677 51.82677l0 0c-28.623135 0 -51.82677 -23.203636 -51.82677 -51.82677zm25.913385 0l0 0c0 14.311565 11.60182 25.913387 25.913385 25.913387c14.311565 0 25.913387 -11.601822 25.913387 -25.913387c0 -14.311565 -11.601822 -25.913385 -25.913387 -25.913385l0 0c-14.311565 0 -25.913385 11.60182 -25.913385 25.913385z" fill="none"></path> </svg>`; let canvas = new fabric.Canvas("canvas"); let path = fabric.loadSVGFromString(svg, function(objects, options) { let obj = fabric.util.groupSVGElements(objects, options); obj.set({ left: canvas.width / 2 - obj.width / 2, top: canvas.height / 2 - obj.height / 2 }); canvas.add(obj).renderAll(); }); canvas.renderAll(); <script src="//cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.6/fabric.js"></script> <canvas id="canvas" width="800" height="600"></canvas><br/>
fabricjs:如何将 loadSVGFromURL 与 React useEffect 一起使用?
我尝试使用 useEffect 将 SVG 渲染到画布上,如下所示: // 存储画布引用 const [canvas, setCanvas] = useState(); 使用效果(()=> { 常量 c = ...
我想上传图像并将其设置为 html5 画布背景,但我也在使用 FabricJS,并且我的应用程序是使用 NUXT 构建的。 我收到错误: 未捕获的类型错误:画布。
我在画布中复制和粘贴对象时遇到问题。复制和粘贴功能本身按预期工作,但是,如果我在粘贴后尝试放大/缩小或旋转画布...
在fabric.js中如何获取鼠标坐标相对于背景图像的位置,而不是canvas.getPointer
如何获取鼠标指向相对于背景图像的绝对坐标。 我有一张 1024 X 1035 的图像,缩放到 400x400 的画布 我想要得到
我有一个包含文本对象和矩形对象的组。当缩放组时,我希望矩形对象更改大小,但文本对象保持相同大小。 有什么办法可以容纳...
使用fabricjs,我画了一个多边形。并在多边形的每个点放置点标记。现在,当用户拖动此点标记时,我动态操纵各个多边形点以允许用户修改
如何通过 chrome-php 解决 Windows 上的 Chrome 和 CentOS 上的 Chromium 之间字体渲染的差异?
我正在使用 chrome-php 在我的 CentOS 服务器上以无头模式渲染网页。网页通过 Fabric.js 加载 html5 画布。文本在 Windows 中的 Chrome 上按预期呈现,但在 CentOS 上通过 ch...
我正在 React 应用程序中使用 FabricJS 创建一个基于画布的工具。我正在使用最新的 NPM 包 6.4.3,并且正在努力将图像添加到画布中。最近他们已经切换到
如何使用react在Fabric js canva中上传图片
我在 React 应用程序中使用 Fabric js v 6。我正在尝试从网址上传图像,但无法执行此操作。每当我单击图像时,我也没有收到任何错误,addImageToCanvas 会出现...
我有一个背景和无限数量的图像或动画,我想将部分图像或动画遮罩或剪辑到背景。我希望用户使用或移动多边形...