2016-09-20 81 views
1

我有一個程序,如:fabricjs將過濾器應用於圖像

var filters = [ 
    new fabric.Image.filters.Grayscale(), 
    new fabric.Image.filters.Sepia2(), 
    new fabric.Image.filters.Invert(), 
] 

function grayscale(url, filter) { 
    var canvas = document.createElement('canvas') 
    document.body.appendChild(canvas) 
    console.log(fabric) 
    fabric.Image.fromURL(url, function(oImg) { 
     canvas.add(oImg) 
    }) 
    var obj = canvas.getActiveObject() 
    obj.filters[filter] = filters[filter] 
    obj.applyFilters(canvas.renderAll.bind(canvas)) 
    var img = canvas.toDataURL('image/png') 
    return img 
} 

,我稱它喜歡:

var img = grayscale("some_url", 0) 
console.log(img) 

我使用從CDN布...

這裏我給圖像網址作爲參數和過濾器太..

我希望該圖像被轉換爲​​灰度,我得到轉換我法師作爲迴應。

在這裏我得到的錯誤,如canvas.add不是一個函數。 canvas.getActiveObject()不是函數..

這裏有什麼問題?

需要幫助

+0

嘗試使用appendChild,而不是像下面這樣添加document.body.appendChild(畫布)。什麼是getActiveObject?您想做什麼? – Kafo

+0

我想使用fabricjs將圖像轉換爲灰度 – aryan

回答

0

需要初始化與Fabirc畫布,你畫布添加後的文件

var canvas = this.__canvas = new fabric.Canvas('id_canvas'); 
相關問題