如何使用fabricjs basefilter实现曝光图像滤镜?

时间:2016-11-17 13:18:40

标签: fabricjs

我想知道如何在结构j中实现曝光过滤器。一些R& DI知道我们可以使用basefilter在fabricjs中实现自定义过滤器,但我不知道用于实现的计算曝光过滤器的图像。感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

曝光过滤器通常是伽玛过滤器。

给出你想要纠正的伽玛值,alghoritm通常如下所示:

applyTo() {
    for (let i = 0; i < length; i += 4) {
        data[i] = Math.pow(data[i] / 255, adjustment) * 255;
        data[i + 1] = Math.pow(data[i + 1] / 255, adjustment) * 255;
        data[i + 2] = Math.pow(data[i + 2] / 255, adjustment) * 255;
    }
}

其中data是图像的imageData.data。

调整为1 / gamma。 因此,对于1.5的伽玛,您的调整将看起来像1 / 1.5