首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭Konvajs灰度

关闭Konvajs灰度
EN

Stack Overflow用户
提问于 2021-02-10 20:12:50
回答 1查看 36关注 0票数 0

我正在使用Konvajs滤镜,让用户能够改变图像的亮度,对比度和灰度。根据KonvaJs的例子,我使用的是输入滑块,效果很好。对于亮度和对比度,我使用:

代码语言:javascript
复制
image.filters([Konva.Filters.Brighten, Konva.Filters.Contrast]);

但对于灰度,我使用输入滑块作为开/关开关和以下滤镜:

代码语言:javascript
复制
image.filters([Konva.Filters.Grayscale]);

因此,当用户将灰度开关设置为“开”时,我可以调用灰度过滤器。但是,如果用户随后将灰度切换为“关闭”,似乎没有办法取消此过滤器。

我有一个涉及取消所有过滤器的变通方法:

代码语言:javascript
复制
image.filters([]);

然后将亮度和对比度滤波器重新调用到先前设置的值。有没有一种方法可以简单地取消灰度过滤器?

EN

回答 1

Stack Overflow用户

发布于 2021-02-11 06:26:49

删除Konva.Node筛选器的唯一方法是从filters属性中删除它。因此,如果您想要重置过滤器或启用/禁用它们,您应该这样做:

代码语言:javascript
复制
const filters = [];

if (needBrighten) {
  filters.push(Konva.Filters.Brighten);
}
if (needContrast) {
  filters.push(Konva.Filters.Contrast);
}
if (needGrayscale) {
  filters.push(Konva.Filters.Grayscale);
}
node.filters(filters);

你可能需要从你的输入中检测到像needBrighten这样的变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66136658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档