使用画布和范围输入事件的动态图像过滤器
Dynamic Image filter using canvas and range input event
在阅读完这篇文章后,我正在使用画布使用一些图像过滤器。基本上,它遍历所有像素并更新值。
我现在要做的是使用输入范围来调整图像的亮度。
因此,我附加了一个onChange事件处理程序,并在用户每次移动滑块时调用该函数来更新画布。
显然,这会大大降低页面速度,因为当用户将滑块从10移动到40时,它调用该函数30次!我尝试使用这样的标志:
if (!myFlag) {
myFlag = true;
...call the function...
myFlag = false;
}
但这并不是我想要的,因为我想要"实时"看到它(像在photoshop中)
谁能给我一个提示来解决这个问题?也许,我应该使用另一个事件,或者使用完全不同的方法来处理imageData。可能不会像你期望的那样好,但尝试添加超时
var myFlag = false;
var filterTimeout;
slider.onChange = function() {
if (!myFlag) {
myFlag = true;
clearTimeout(filterTimeout);
filterTimeout = setTimeout(function() {
// apply the filter hear
myFlag = false;
}, 1);
}
}
如果你想实时看到它,你需要在滑动条更新它的值时调用这个函数。
唯一的另一种方法是有一个apply按钮,该按钮在滑动条设置(或超时)时转换图像。
相关文章:
- 如何使Javascript动态html表及其上的事件
- JavaScript-动态SVG-onload属性-未触发事件
- 动态创建OnClick事件Javascript
- 如何使用javascript和PHP动态触发onChange事件
- 谷歌地图动态创建的标记点击事件使用相同的标记
- 在动态创建的标记上添加事件
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- 将多个事件动态添加到多个 Web 视图
- 将onclick事件动态添加到选择下拉列表中的选项
- 将单击事件动态绑定到列表
- 将事件动态绑定到表行和列
- 在Highcharts上绘制随时间变化的偶发事件(动态精度?)
- 从事件动态设置属性值
- 在Firefox中,使用JS onload事件动态调整图像大小会延迟
- 如何添加onclick事件动态传递一个特定的值
- 将事件动态添加到body>使用JavaScript
- Mithril:在事件/动态上渲染组件
- Angular为事件动态生成的ID locate
- 使用onclick事件动态更改javascript源代码
- 使用onClick事件动态创建表行