草庐IT

fabricjs

全部标签

javascript - fabricJS 中 Text 和 IText 的区别

谁能告诉我是什么让fabric.IText与fabric.Text不同?我可以看看任何演示吗?仅限官方Fabric教程describesText我看不出在officialITextdemo中的用法有什么不同. 最佳答案 在文本中:您可以设置任何样式(如填充、文本背景颜色、字体大小...等),它将应用于“整个文本”。但在IText中:您可以将样式设置为文本中的“任意数量的字符(您选择的)”,它将仅应用于文本的选定部分。要从Itext中选择字符,您可以使用:创建选择:单击/触摸并拖动,选择单词:双击和选择行:三次单击或者,followI

javascript - 使用 fabric js 调整 Canvas 大小

这个问题在这里已经有了答案:CanvaswidthandheightinHTML5(3个答案)关闭8年前。该应用程序允许用户保存设计并发布,以便其他用户稍后查看。原始Canvas以width=700和height=600的比例保存。但是在显示Canvas时,我想调整Canvas的大小以适应(350,300)的尺寸。原来的一半。但是,如果我直接应用这些尺寸并加载宽度setWidth()和setHeight(),它会以原始比例加载。我只想显示新尺寸的Canvas。

javascript - 在 fabric js 中缩放时保持 strokeWidth

注意:我已经引用了SOquestion,但它对我的情况没有用,因为1)我试图保持以前的边界,但截至目前它在缩放时重新计算边界。我添加了下面的代码以在缩放对象时停止自动增加边框。现在的问题是我已经为对象添加了一个5px的边框,但是在缩放对象时它没有保持我之前添加的边框。canvas.on('object:scaling',(e)=>{varo=e.target;if(!o.strokeWidthUnscaled&&o.strokeWidth){o.strokeWidthUnscaled=o.strokeWidth;}if(o.strokeWidthUnscaled){o.strokeWi

javascript - 使用 fabric js 时需要更改 Canvas 背景颜色

我有一个Canvas元素,我用它创建了织物对象。现在,我想动态更改背景颜色。以下内容对我不起作用。varx;x=newfabric.Canvas("mycanvas",{backgroundColor:"#fff",selection:true});x.backgroundColor="#f00";背景颜色是白色,不会变成红色。 最佳答案 更改属性后需要渲染Canvas,因为对象的属性只是属性,不由事件处理http://jsfiddle.net/oceog/gDhht/varcanvas=newfabric.Canvas('c',{

javascript - Fabricjs 文本框使文本缩小以适合

我会定义一个文本框(单行)默认情况下,字符大小为16(例如)当文本变得比文本框大时,我不希望它换行或者文本框变大,我希望文本大小适合文本框的最大大小。文本。当文本返回到较小的尺寸时,它可以恢复其初始尺寸(在我们的示例16中)。可能管理最小尺寸如果你有想法,我采纳:)提前致谢测试用例:http://jsfiddle.net/Da7SP/273///initializefabriccanvasandassigntoglobalwindowsobjectfordebugvarcanvas=window._canvas=newfabric.Canvas('c');//ADDYOURCODEHE

javascript - 在fabricjs中查找旋转对象的 Angular 坐标

假设我在fabricjsCanvas中有一张图片。我可以根据图像的top和left值及其大小轻松计算Angular的坐标。当图像旋转任意度数时,我该怎么做?例子:编辑:最好不要使用三Angular函数,如果在fabricjs本身或其他地方有一个更简单的方法。 最佳答案 当然可以。我们将这些坐标存储在对象的oCoords中oCoords.tl.x,oCoords.tl.y//topleftcorneroCoords.tr.x,oCoords.tr.y//toprightcorneroCoords.bl.x,oCoords.bl.y//

javascript - 在 Fabric.js 中反序列化一个 JSON 对象

我正在使用fabricjs开发协作白板。当用户创建一个新的结构对象时,我将其序列化并将其发送给所有其他用户。varrect=newfabric.Rect();canvas.add(rect);socket.emit("newObject",JSON.stringify(rect));//sendstheobjecttootherusers当这些用户收到序列化对象时,应该将其反序列化并添加到他们的Canvas中。做这个的最好方式是什么?我找不到反序列化单个对象的函数,只能反序列化整个Canvas(loadFromJSON),所以我实现了一个不优雅的解决方案:functiondrawRoo

javascript - 如何更改 Fabric.js 调整大小句柄的默认外观?

Fabric.js的交互模式非常方便,允许像在Inkscape等矢量绘图程序中那样操作对象。我想在需要一种拼贴编辑器的Web应用程序项目中使用此功能。默认情况下,选中对象时,边界框和调整大小handle显示为蓝色,handle为蓝色空心大方block。我想更改它以匹配我的项目设计。文档有专门的页面介绍如何在此处执行此类自定义:http://fabricjs.com/customization/使用上述指南,我能够获得更适合我的应用程序的选择框。但是这个解决方案是基于每个对象的。使用Shift键执行组选择时,handle和边界框恢复为默认蓝色。我如何才能达到文档中所述的相同级别的自定义并

javascript - Canvas 仅在使用 fabric.js 的单击事件上呈现自定义 webfont

我在自定义webfonts和fabric.js方面一直存在问题。我的应用程序使用了大量自定义网络字体,我在将iText添加到我的Canvas时初始化了它们:vartext=newfabric.IText("MyText",{fontFamily:"SomeCustomFontFamily",fontSize:50,top:0,left:0,fill:"#000000"});canvas.add(text);canvas.bringToFront(text);canvas.setActiveObject(text);canvas.renderAll();只有在我单击Canvas上的iTe

javascript - 如何获取组中对象的 Canvas 相对位置?

通常一个对象相对于Canvas的位置可以从它的.left和.top属性得到,但是如果对象在一个选择/组。有没有办法获得它们相对于Canvas的位置? 最佳答案 当对象在组内时,其相对于Canvas的坐标将取决于组的原点(以及对象的原点)。假设我们有这段代码,其中添加了一个矩形和一个圆圈。varcanvas=newfabric.Canvas(document.getElementById('c'));varrect=newfabric.Rect({width:100,height:100,left:50,top:50,fill:'rg