草庐IT

fabricjs

全部标签

javascript - 在 Fabric js 中的两个对象之间添加动画

我有一个非常基本的应用程序,可让您创建形状并用一条线将它们连接起来。为此,您需要执行以下操作。Example1.Clicknewanimation2.addrectangle3.addchild4.addcircle您可以移动形状、拖动和调整大小。我想知道是否可以在两个对象之间添加动画。因此,例如,一个小圆球会在两个物体之间的线上移动。我已经查看了fabricjs动画页面上的演示,但不确定是否可以从对象b执行。这是FIDDLE. 最佳答案 我不知道你是否可以在fabric中使用内置的动画功能,因为正如你所说,这些对象可能会自己移动。

javascript - 在 FabricJS 中,更改图像元素的 src 会更改该对象的所有属性

在Fabric.jsCanvas中,我试图将图像对象的src替换为高分辨率图像,以便在使用canvas.toDataURLWithMultiplier时保持图像质量。当我更改图像对象的src时,它的所有属性也会更改。图像对象会自动缩放到不同的大小,并且所有状态属性都会更改。这是从版本0.9.15开始发生的。当我使用0.8.32版本时,它可以工作。0.8.32版本没有这个问题。代码如下:ChangeImagecanvas=newfabric.Canvas('canvas');fabric.Image.fromURL("http://timeplusq.com/dakshin/clip03

javascript - 更改生成的图像分辨率 Fabric.js

我正在创建一个基于Fabric.js的图像编辑器,但我在最终图像分辨率方面遇到了问题。我需要生成高分辨率的图像,但我的编辑器的尺寸在低分辨率下以像素为单位。例如:Canvas有800像素x600像素,我需要一张100厘米x400厘米的最终图像,换句话说,实际尺寸。 最佳答案 让我根据我的经验在这里提出一些想法-如果最终分辨率很大,但不是特别大,您可以在生成图像数据(例如toDataURL)之前将Canvas缩放到它的大小如果最终分辨率特别大,建议直接用PHP处理对于第一个-varoriginWidth=canvas.getWidth

javascript - 如何在 fabric.js 中用 Canvas 保存图像

我正在创建一个T恤定制应用程序,其中我使用CSS将Canvas放在图像上,但问题是将该图像保存为Canvas。toDataURL只给出了Canvas区域的一部分,但我想要整个图像。StackOverflow上有其他解决方案,但它们没有解决这个问题。 最佳答案 你好,您必须创建一个包含消息的文本对象的图像对象(T恤)。为此,使用fabric.Image.fromURL()函数加载图像,并在函数内部创建一个文本对象,用于显示T恤消息。因此,您的图像和文本属于一个组对象。每次您要加载新文本时,您都调用loadText函数并更改文本对象。我

javascript - 如何终止 forEachObject 循环?

本题属于fabricJS和canvas。在以下情况下,检查是否有任何对象的属性为true(obj.background==true)。Canvas上可以有多个图像。在第一次对象检测之后,我想终止循环。我该怎么做?我用过returnfalse;但不起作用。这是函数。canvas.forEachObject(function(obj){if(obj.isType('image')&&obj.hasOwnProperty('background')){if(!obj.background==true){alert("true");returnfalse;}}});

javascript - 如何在 Fabric.js 中绘制圆弧

我正在使用Fabric.js,我想在Canvas上绘制弧线。我能找到的最接近的形状是Circle形状。当然,这只能让我画一个圆,而不是像跨越45°或180°的弧。有没有办法用Fabric.js来完成这个?如果没有,有没有办法获取底层上下文,然后创建弧并允许fabric管理它?保留Fabric.js提供的选择和缩放功能很重要。 最佳答案 在最新版本的FabricJSforcircle中添加了startAngle和endAngle属性。https://github.com/kangax/fabric.js/pull/1675varcan

javascript - FabricJS Fluid 对齐网格

我想用这个http://jsfiddle.net/fabricjs/S9sLu/可以将对象捕捉到网格的功能,问题是我不希望它直接捕捉到线条,而是仅当它接近它时。所以物体的运动是流畅的,如果用户愿意,它可以被捕捉。这是javascript,我认为它与Math.round()有关:grid=50;//Griddisplaypartfor(vari=0;i有什么关于如何实现的建议吗? 最佳答案 如果我没理解错的话,这个小调整应该可以解决:canvas.on('object:moving',function(options){if(Math

javascript - 在 FabricJS 中绘制一条波浪线

我正在使用FabricJS创建用于绘制特定线条和形状的Canvas。其中一条线是带箭头的波浪线,类似这样:我已经成功地创建了一个带有箭头端点的直线版本,但找不到任何关于如何创建波浪线的示例。用户可以根据需要绘制线,因此线中“峰”和“谷”的数量需要相应地调整(像上图这样的短线可能有4个峰,但两倍长度的线会有8个峰,不仅仅是较短线的拉伸(stretch)版本)。这是我用来绘制带有箭头端点的直线的代码。请注意,线的起点是在mousedown上绘制的,终点是在mouseup上绘制的。importLineWithArrowfrom'./LineWithArrow';drawLineWithArr

javascript - 如何使用 fabricjs 放大并居中对象?

我希望能够单击一个对象,并将其缩放到Canvas视口(viewport)中的边界框。我如何做到这一点?参见http://jsfiddle.net/tinodb/qv989nzs/8/为了我想开始工作。Fabricjs的Canvas有zoomToPoint方法(文档说:Setszoomlevelofthiscanvasinstance,zoomcenteredaroundpoint),但这并不居中到给定点,但它确实适用于滚动缩放。参见http://jsfiddle.net/qv989nzs/我尝试了其他几种方法,比如使用canvas.setViewportTransform://cent

javascript - 向 fabricjs 对象添加自定义属性

我正在尝试向我拥有的结构js对象添加自定义属性:vartrimLine=newfabric.Rect({width:Math.round(obj.box_dimensions.box.width,2),height:Math.round(obj.box_dimensions.box.height,2),strokeWidth:1,stroke:'rgb(255,2,2)',fill:'',selectable:false});这就是我试图添加的矩形,我想在其中传递一个名称或ID,以便稍后在我获取Canvas对象并将其转换为json时能够识别它。我试过vartrimLine=newfab