Ich versuche, Kontrast als Filter zu KineticJS hinzuzufügen (ich weiß, es ist kein Filter technisch). Es funktioniert, aber ich möchte contrast()
Modifizierer hinzufügen (wie noise()
für Rauschfilter usw.).erweitern KineticJS - benutzerdefinierte Filter
Hier ist meine Funktion (nach KineticJS 5.0.1 Bibliothek einschließlich):
(function() {
Kinetic.Filters.Contrast = function(imageData) {
var data = imageData.data,
len = data.length,
i,
adjust = this.contrast(),
x = [];
//[cut] processing, not important here
};
Kinetic.Factory.addGetterSetter(Kinetic.Node, 'contrast', 0, null, Kinetic.Factory.afterSetFilter);
})();
Wie Sie sehen können, Kinetic.Factory.addGetterSetter
mich contrast()
Modifikator bieten sollte, aber es funktioniert nicht. Wenn ich den Code ausführen, resuls ist TypeError: imgs.contrast is not a function
:
imgs.filters([Kinetic.Filters.Contrast]);
imgs.contrast(30);
Was mache ich falsch?
// Update
Meine temporäre Lösung: nur meine Funktion in kineticJS Datei setzen. Nicht perfekt, aber es funktioniert.
Technisch ist Ihre Lösung in Ordnung, aber ich habe viele dynamisch hinzugefügte Objekte auf meiner Leinwand. Es ist also ziemlich schwer zu implementieren und ich denke in meinem Fall wird die Leistung nicht gut genug sein (aber ich habe keine Tests gemacht). Meine vorübergehende Lösung: Einfach die Funktion in kineticJS-Datei einfügen. Nicht perfekt, aber es funktioniert. – czachor