Javascript 如何删除kineticjs中图像的过滤器?
我可以向图像添加过滤器,如: ,但如何删除它并获得初始图像 更新: 解决此问题的代码:Javascript 如何删除kineticjs中图像的过滤器?,javascript,kineticjs,Javascript,Kineticjs,我可以向图像添加过滤器,如: ,但如何删除它并获得初始图像 更新: 解决此问题的代码: imageCanvas.initailImage = imageCanvas.getImage(); imageCanvas.disconnect = function () { imageCanvas.applyFilter({ filter: Kinetic.Filters.Grayscale, callback: funct
imageCanvas.initailImage = imageCanvas.getImage();
imageCanvas.disconnect = function () {
imageCanvas.applyFilter({
filter: Kinetic.Filters.Grayscale,
callback: function() {
//imageCanvas.deviceName += " - Disconnected.";
stage.get('#deviceLayer')[0].draw();
}
});
};
imageCanvas.connect = function () {
if (imageCanvas.hasOwnProperty('initailImage')) {
imageCanvas.setImage(imageCanvas.initailImage);
stage.get('#deviceLayer')[0].draw();
}
};
目前似乎没有任何方法可以做到这一点。我翻遍了当前版本的源代码,找不到任何可以删除过滤器的函数调用 过滤器本身实际上是对原始图像数据应用一点数学知识的函数,因此一种方法可能是定义自己的过滤器,应用逆方程。但是,如果不增加额外的复杂性,可能无法计算原始值 因此,如果你不想尝试(谁会责怪你呢…),你也可以从同一个源创建一个新图像,并单独存储,显示为过滤后的图像。这有点烦人,不幸的是克隆方法现在也不能正常工作(您将获得对同一变量的引用),但这可能是最简单的方法 最后,当然,您可能更愿意等待更多过滤器支持的实现。不过,我无法告诉您何时可能发生这种情况。请轻松使用以下命令
YOURIMAGEORSHAPE.clearFilter();
stage.draw(); // or layer.draw(); depending on your setup
我的解决方法是:调用
getImage
方法保存初始图像,需要获取初始图像时,通过setImage
方法恢复初始图像。所以,它起作用了。
YOURIMAGEORSHAPE.clearFilter();
stage.draw(); // or layer.draw(); depending on your setup