2016-05-25 2 views
0

Fabric JSでカスタムフィルタを使用しています。しかし、私は何かを元に戻す方法を知りません。プロセスによってピクセルが上書きされたようですが、これは正常ですが、元の状態に戻すにはどうすればいいですか?コードプロジェクトのスターターはここにある: https://github.com/pixolith/fabricjs-async-web-worker-filtersFabric JSでのカスタムフィルタの使用 - オリジナルの取得

次のように、カスタムフィルタでは、結果がキャンバスに配置されています

imageDataArray.forEach(function(data) { 
    cacheCtx.putImageData(data.data, 0, data.blocks); 
}); 

レンダリングで処理された画像を示しています。しかし、私はどのように元の "戻る"を理解していない。私は処理の前にこれを試した:

var obj = canvas.getActiveObject(); 
var originalSource = obj._originalElement.currentSrc; // restore the original since filters trash the canvas 
obj.filters[index] = filter; 
obj.applyFilters(canvas.renderAll.bind(canvas)); 

しかし、それは "戻って"取得しません。私は本当に毎回イメージをリロードしたくないのです。どんな助けもありがたい。

+0

あなたはフィドルをしてください。 –

答えて

0

obj._originalElementは、最初に読み込んだ画像の元の要素です。それをまったくリロードする理由はありません。キャンバスに壊される準備ができました。 ちょうどobj.element = obj._originalElementをやってください。canvas.renderAll();の後に元に戻っています

関連する問題