这是我的上加载图像到画布:Fabric.js - canvas.toDatalessJSON未按预期
$(".img-link").on("click", function(e) {
e.preventDefault();
var url = $(this).attr('href'),
extension = url.substr((~-url.lastIndexOf(".") >>> 0) + 2);
if(extension !== 'svg') {
fabric.Image.fromURL(url, function(oImg) {
var ow = oImg.getWidth(),
oh = oImg.getHeight();
oImg.lockUniScaling = true;
oImg.set({'left': ow/2, 'top': oh/2});
canvas.add(oImg);
});
} else {
var group = [];
fabric.loadSVGFromURL(url, function(objects,options) {
var loadedObjects = new fabric.Group(group);
loadedObjects.set({
left: 100,
top: 100,
sourcePath: url
});
canvas.add(loadedObjects);
canvas.renderAll();
},function(item, object) {
object.set('id',item.getAttribute('id'));
group.push(object);
});
}
});
console.log(JSON.stringify(canvas.toDatalessJSON()))
给出以下输出:
{ “对象”:[{”类型 “:” 基团”, “originX”: “中心”, “originY”: “中心”, “左”:100, “顶部”:100, “宽度”:200, “高度”:200, “填充” : “RGB(0,0,0)”, “overlayFill”:空, “中风”:NULL, “strokeWidth”:1, “strokeDashArray”:NULL, “strokeLineCap”: “对接”, “strokeLineJoin”:“斜切”, “strokeMiterLimit”:10 “将scaleX”:1, “的scaleY”:1, “角度”:0 “flipX”:假 “flipY”:假, “不透明性”:1, “影子”:空, “可见”:真 “clipTo”:NULL, “对象”:[{ “类型”: “路径”,“ORI ginX “:” 中心 “ ”originY“: ”中心“, ”左“:0, ”顶部“:0, ”宽度“:200, ”高度“:200, ”填充“: ”#AA0000“,” overlayFill “:空,” 中风 “:NULL,” strokeWidth “:1,” strokeDashArray “:NULL,” strokeLineCap “:” 对接”, “strokeLineJoin”: “斜切”, “strokeMiterLimit”:10 “将scaleX”:1, “的scaleY”:1, “角度”:0 “flipX”:假 “flipY”:假, “不透明性”:1, “影子”:空, “可见”:真 “clipTo”:NULL,“路径“:[[” M”,91.5,73],[ “c” 的,0,-30,40,-30,40,0],[ “c” 的,0,30,-40,60,-40, 60],[ “c” 的,0,0,-40,-30,-40,-60],[ “c” 的,0,-30,40,-30,40,0]], “pathOffset”: { “X”:0, “Y”:0}}]}], “背景”: “”}
如果我检查canvas.item(0).sourcePath
它给了我heart.svg
的哪些错误?
感谢
你的问题是什么? – Kienz
@Kienz当我已经设置'sourcePath:url'时,canvas.toDatalessJSON()是否应该将'url'返回到SVG而不是SVG路径? –