【发布时间】:2017-08-25 19:06:10
【问题描述】:
我在我的项目中使用了 fabricJS,但我无法更改笔触颜色和宽度。我的页面上有一些 SVG 文件,单击后用户可以将此 SVG 添加到画布并修改其属性。使用填充它可以完美地工作,但使用中风我不能这样做。这是填充代码,运行良好:
function setImageColor(element)
{
var activeObject = canvas.getActiveObject(),
color = "#"+element.value;
console.log(color)
console.log(activeObject)
activeObject.set({fill : color});
canvas.renderAll();
}
jscolor.addEventListener('change', function()
{
setImageColor(this);
});
这是在画布上加载 SVG 元素的代码:
shapes.forEach(function(e)
{
e.addEventListener("click", function()
{
var src = e.src;
fabric.loadSVGFromURL( src, function(objects, options)
{
var obj = fabric.util.groupSVGElements(objects, options);
canvas.add(obj).renderAll();
obj.scaleToHeight(127)
.scaleToWidth(90)
.center()
.setCoords();
canvas.setActiveObject(obj).renderAll();
});
});
});
这是笔画的代码,但它不起作用:
function setStrokeColor(element)
{
color = "#"+element.value;
var obj = canvas.getActiveObject();
console.log(color)
console.log(activeObject)
activeObject.set({stroke : color, strokeWidth: 5});
canvas.renderAll();
}
var stroke = document.getElementById("stroke");
console.log(stroke)
stroke.addEventListener('change', function()
{
setStrokeColor(this);
});
【问题讨论】:
-
你能添加你的 SVG 吗?我猜 SVG 需要修改以允许您“中风”。过去,我不得不让我的图形艺术家(使用 Adobe Illustrator)在导出时进行调整,以便它的格式不同,使其能够更好地与 html 5 画布对象 - graphicdesign.stackexchange.com/questions/15475/… 一起播放。
-
我也在使用 Adobe Illustrator 创建 svg 文件。在来自 AI 的圆的 fidlejs 代码上。我要做很多形状,像平面或花朵这样的形状。 jsfiddle.net/ck75a2r3
-
HTML 5 Canvas 可能不喜欢 Circle,尝试从 Adobe 导出为路径...graphicdesign.stackexchange.com/questions/15475/…
-
谢谢。我从 svg 制作了路径,但它仍然无法正常工作。我想在画布上编辑 svg。我使用的是 Fabric.js 库而不是标准画布。
标签: javascript canvas svg fabricjs