fabricjs - Fabric js图像过滤器
问题描述
您好,我正在尝试创建 img 过滤器,有范围输入滑块,用户从中选择过滤器值,然后将其应用于选定的图像对象,但每次输入更改时,它都会添加一个新过滤器并乘以如何解决这个问题,下面是我的代码:
$('.img-fillter-controller .range-field').on("change", "input", function () {
t = $(this).data("filter");
v = $(this).val();
o = activeCanvas.getActiveObject();
switch(t) {
case 'brightness':
f = new fabric.Image.filters.Brightness({brightness: v/100 });
applyImgFilter(f);
return;
case 'saturation':
return;
case 'contrast':
return;
case 'blur':
return;
case 'exposure':
return;
case 'colorify':
return;
case 'hue':
}
});
function applyImgFilter(f) {
o.filters.push(f);
o.applyFilters();
activeCanvas.renderAll();
}
解决方案
为了在图像上正确应用过滤器,我们需要修复过滤器索引,或者可以说通过静态索引分配过滤器。
您应该替换此功能:
function applyImgFilter(f) {
o.filters.push(f);
o.applyFilters();
activeCanvas.renderAll();
}
新功能:
function applyImgFilter(f) {
o.filters[0] = f
o.applyFilters();
activeCanvas.renderAll();
}
推荐阅读
- excel - 如何将文本与共同的单词分组?
- java - 使用一个 map-filter lambda 表达式从项目列表中检索对象字段
- jmeter - jmeter中的负载测试
- ruby-on-rails - 包括 RailsAdmin 组中的所有剩余字段
- ios - 在 Firebase Crashlytics 仪表板中加载您的问题时出现 iOS 错误
- cmake - 将 fixup_bundle 结果添加到 CPack
- c - 如果可能,需要有关以下代码输出的帮助并进行解释
- python - 将后视模式与匹配的正则表达式搜索模式分组以作为一个整体替换
- android - 为密度拆分 apk:不支持 Galaxy S8+、Note 8、Galaxy S9+、Note 9
- javascript - AbortError - 使用 WebRTC 进行屏幕共享