這是我的上加載圖像到畫布: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路徑? –