javascript - 如何在 HTML5 Canvas 中调整图像的色调、饱和度和亮度?

标签 javascript image canvas hsl

尽可能简单的方法是可取的。不幸的是,我对图像处理知之甚少!

最佳答案

您可以使用 globalCompositeOperation"hue""saturation""color"“亮度”

在哪里

  • “色调”会将目标色调更改为源色调。
  • “饱和度”会将目标饱和度更改为源的饱和度
  • “颜色”会将目标颜色更改为源颜色。
  • “光度”会将目标光度更改为源光度

例如,如果您想将图像饱和度更改为完全饱和度

ctx.drawImage(image,0,0); // image to change
ctx.globalCompositeOperation = "saturation";
ctx.fillStyle = "hsl(0,100%,50%)";  // saturation at 100%
ctx.fillRect(0,0,image.width,image.height);  // apply the comp filter
ctx.globalCompositeOperation = "source-over";  // restore default comp

如果您想要更精细的控制,您必须使用 getImageDatasetimagedata 逐个像素地进行控制,但这可能会非常慢。为了提高速度,您最好使用 webGL 过滤器,它可以在速度方面与上述合成模式进行比较,但代价是代码复杂性。

关于javascript - 如何在 HTML5 Canvas 中调整图像的色调、饱和度和亮度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40353049/

相关文章:

javascript - Ramda JS : How to perform a map where I call R. 替换每个对象的给定属性?

javascript - 如何为图像框创建翻转?

html - 有没有办法让图像保持比例?

javascript - 选择要收听的事件

html - Canvas 的 GWT 图像加载

javascript - 如何为kafka主题创建消费者?

javascript - 从字符串中获取初始数字

javascript - 如何在 Jasmine 中测试 JavaScript 图像 onerror 回调?

jquery - 使用 HTML5 & Canvas 还是 CSS3(背景图片) & jquery 制作幻灯片更好?

除非我刷新,否则 JavaScript/Coffeescript 不会执行