Skip to main content

HTML5 Canvas 自定义滤镜教程

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

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

滤镜 是一个函数,它以画布的 ImageData 为输入,并应当对其进行修改。

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

有关所有可用滤镜的信息,请访问 滤镜文档。

还可以查看 图像边框示例 以获取自定义滤镜示例。

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

import Konva from 'konva';

// 创建自定义滤镜
Konva.Filters.RemoveAlpha = function (imageData) {
const data = imageData.data;
for (let i = 0; i < data.length; i += 4) {
data[i + 3] = 255; // 将 alpha 设置为 1
}
};

const stage = new Konva.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight,
});

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

const imageObj = new Image();
imageObj.onload = () => {
const image = new Konva.Image({
x: 50,
y: 50,
image: imageObj,
draggable: true,
});

layer.add(image);

image.cache();
image.filters([Konva.Filters.RemoveAlpha]);
};
imageObj.src = 'https://konvajs.org/assets/lion.png';
imageObj.crossOrigin = 'anonymous';