RGB滤镜

获取Konva最新的信息

给图片添加滤镜前,我们必须先使用cache()方法将它缓存起来,然后使用filter()方法添加滤镜。

我们可以使用Konva.Filters.RGB滤镜修改图片的RGB三原色的组成比例。

说明:拖动下面滑块改变rgb的值。

查看所有滤镜 Filters Documentation.

Konva RGB Image Demoview raw
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/konva@4.0.18/konva.min.js"></script>
<meta charset="utf-8" />
<title>Konva RGB Image Demo</title>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
background-color: #f0f0f0;
}

#controls {
position: absolute;
top: 20px;
left: 20px;
}
</style>
</head>

<body>
<div id="container"></div>
<div id="controls">
Red:
<input id="red" type="range" min="0" max="256" step="1" value="150" />
Green:
<input id="green" type="range" min="0" max="256" step="1" value="150" />
Blue:
<input id="blue" type="range" min="0" max="256" step="1" value="150" />
</div>
<script>
Konva.Image.fromURL('../../../assets/lion.png', function(lion) {
var stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight
});

var layer = new Konva.Layer();

lion.position({
x: 50,
y: 50
});
lion.cache();
lion.filters([Konva.Filters.RGB]);
layer.add(lion);
stage.add(layer);

var sliders = ['red', 'green', 'blue'];
sliders.forEach(function(attr) {
var slider = document.getElementById(attr);
function update() {
lion[attr](parseFloat(slider.value));
layer.batchDraw();
}
slider.oninput = update;
update();
});
});
</script>
</body>
</html>