HTML5 Canvas 自定义滤镜教程

如何为 Konva 节点应用自定义滤镜?

这个示例演示了如何使用 Konva 框架中的自定义滤镜。

Filter 是一个函数,它的输入是画布的 ImageData,并且应该对其进行修改。

function Filter(imageData) {
// 对图像数据进行处理
imageData.data[0] = 0;
}

有关所有可用滤镜,请访问 滤镜文档

还可以查看 图像边框示例 以了解自定义滤镜的示例。

在这个示例中,我们将移除图像中的所有透明度。

Konva 自定义滤镜图像示例view raw
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/konva@9.3.18/konva.min.js"></script>
<meta charset="utf-8" />
<title>Konva Custom Filter Demo</title>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
background-color: #f0f0f0;
}
</style>
</head>

<body>
<div id="container"></div>
<script>
var stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight,
});

var layer = new Konva.Layer();
stage.add(layer);

// lets define a custom filter:
var OpacityFilter = function (imageData) {
// make all pixels opaque 100%
var nPixels = imageData.data.length;
for (var i = 3; i < nPixels; i += 4) {
imageData.data[i] = 255;
}
};

Konva.Image.fromURL('/assets/lion.png', function (image) {
layer.add(image);
image.setAttrs({
x: 80,
y: 30,
borderSize: 5,
borderColor: 'red',
});

image.filters([OpacityFilter]);
image.cache();
});
</script>
</body>
</html>