2013-03-28 13 views
6

के रंग/भरने/स्ट्रोक को बदलें क्या loadSVGFromURL का उपयोग कर कैनवास पर रखे कपड़े में एक एसवीजी का रंग बदलने का कोई तरीका है? एसवीजी सिर्फ एक तीर है, अगर मैं भरने या स्ट्रोक सेट नहीं कर सकता, तो क्या मैं इसे फ़िल्टर के साथ कर सकता हूं?Fabric.js - आयातित svg

$("input:radio[id='arrow']").click(function() { 
fabric.loadSVGFromURL('../scripts/svg/arrow.svg', function(objects) { 
      var group = new fabric.PathGroup(objects, { 
      left: 165, 
      top: 100, 
      width: 295, 
      height: 40, 
      fill: colourSet 
     }); 
     canvas.add(group); 
     canvas.renderAll(); 
      }); 
      }); 
+0

http://fabricjs.com/hovering/ और http://fabricjs.com/customization/ आपको वहां मिलेगा – dsdsdsdsd

उत्तर

16
var colorSet = '#00FFFF'; 

$("input:radio[id='arrow']").click(function() { 
    fabric.loadSVGFromURL('../scripts/svg/arrow.svg', function(objects, options) { 
    var shape = fabric.util.groupSVGElements(objects, options); 
    shape.set({ 
     left: 165, 
     top: 100, 
     width: 295, 
     height: 40 
    }); 
    if (shape.isSameColor && shape.isSameColor() || !shape.paths) { 
     shape.setFill(colorSet); 
    } 
    else if (shape.paths) { 
     for (var i = 0; i < shape.paths.length; i++) { 
     shape.paths[i].setFill(colorSet); 
     } 
    } 
    canvas.add(shape); 
    canvas.renderAll(); 
    }); 
}); 

fabric.PathGroup पर समारोह setFill ही काम करता है वस्तुओं अगर सभी रास्ते एक ही रंग है: https://github.com/kangax/fabric.js/blob/master/src/path_group.class.js#L99

+0

हे Kienz, इस के साथ आपकी मदद के लिए धन्यवाद लेकिन तीर को उस कोड के साथ कैनवास में जोड़ा नहीं जा रहा है ... – IlludiumPu36

+1

अरे पीटर, मैंने jsfiddle उदाहरण बनाया (loadSVGFromString के साथ loadSVGFromURL के बजाय): http: //jsfiddle.n एट/किएनज़/एनएफक्यूबीबी/ क्या आप अपना एसवीजी पोस्ट कर सकते हैं ?! – Kienz

+2

"आप रंग कहते हैं, मैं रंग कहता हूं, चलो पूरी चीज़ को बंद कर दें ..." (जॉर्ज और ईरा गेर्शविन से माफ़ी)। समस्या यह थी कि मैं colourSet (अंग्रेजी वर्तनी) और 'colorSet' (यांक वर्तनी ...) को संदर्भित फ़ंक्शन का उपयोग कर रहा था। सब अब काम कर रहे हैं। – IlludiumPu36

0

आप OBJECT.setFill ('FILL_COLOR') का उपयोग कर सकते हैं; उदाहरण के लिए

rect.setFill('red');